gelöst Windows Batch - Drag and Drop - prüfen ob Parameter leer

Mitglied: zimbosmurf

zimbosmurf (Level 1) - Jetzt verbinden

08.05.2017 um 12:57 Uhr, 990 Aufrufe, 2 Kommentare, 1 Danke

Hallo!

Ich habe ein Batch-Skript für eine Backuproutine entworfen, das aufgerufen werden soll, indem man einen Ordner auf das Skript zieht. Aus diesem Ordner wird dann das Backup in das laufende System zurückgespielt.

Eleganterweise würde ich gerne prüfen, ob das Skript wirklich per Drag and Drop gestartet wurde oder einfach per Doppelklick. In letzterem Fall (Kein Parameter) soll das Skript eine Fehlermeldung ausgeben und sich beenden.

Mein erster Versuch war der folgende:
Die Bedingung wird aber nie true, denn es wird 'nichts' mit einem String verglichen, der aus zwei Anführungszeichen besteht.

Also habe ich in einem nächsten Versuch das ganze mit Anführungszeichen um die %1 abgeändert:
Jetzt bricht das Skript korrekt ab, wenn kein Parameter ausgegeben wurde, arbeitet korrekt, wenn ein einfacher Pfad übergeben wird, steigt aber aus, wenn ein Pfad mit Leerzeichen übergeben wird, denn der Pfad mit Leerzeichen kommt als "c:\Pfad mit Leerzeichen" (und die Anführungszeichen sind Teil des Strings!) in der Batch-Datei an und der Vergleich lautet dann
und bei den doppelten Anführungszeichen steigt cmd aus.

Nächste Idee: Naja, dann strippe ich halt die Anführungszeichen aus dem Parameter weg, bevor ich vergleiche Ich brauche ihn nachher sowieso ohne die Anführungszeichen, weil ich an den Pfad noch Strings anhängen möchte um gezielt Unterpfade anzusprechen:
Jetzt klappt alles wunderbar, wenn ich Pfade mit oder ohne Leerzeichen übergebe, dafür steigt cmd aus, wenn ich mit einem Doppelklick ohne Parameter starte, denn aus dem nicht vorhandenen Parameter wird durch den Versuch zu strippen
und dadurch endet mein Vergleich als
und ich habe wieder ein doppeltes Anführungszeichen und cmd steigt aus.

Nächster Versuch ist der folgende:
(ziemlich von hinten durch die Brust!)
Diese Variante funktioniert jetzt endlich in allen drei Varianten! An einen Pfad, egal ob mit oder ohne Leerzeichen und Anführungszeichen, werden vorne und hinten die # angehängt, ein leerer Parameter wird somit zu ## und der Vergleich funktioniert, danach werden beim Pfad die # und Anführungszeichen wieder weggestrippt. Problem: der # (und viele andere Zeichen, die ich stattdessen verwenden könnte, auch) darf auch ganz normal in einem Ordner- oder Dateinamen vorkommen. Ist zwar unwahrscheinlich, aber nicht unmöglich.

Aktuell letzter Versuch war dann der folgende, sehr ähnliche:
Der funktioniert jetzt endlich so, wie ich es mir erhoffe, macht auch keine Probleme, wenn das # im Pfad steckt und scheint mir die praktikabelste Lösung zu sein. Schön finde ich es trotzdem nicht.

Meine Frage:
Gibt es für dieses - ja eigentlich nicht ungewöhnliche - Problem nicht eine elegantere Lösung? Bin ich zu doof, um das offensichtliche zu sehen?
Mitglied: zimbosmurf
08.05.2017 um 13:57 Uhr
Da ist das offensichtliche! Super! Vielen Dank!

Und Danke für die verlinkte Übersicht!
Bitte warten ..
Heiß diskutierte Inhalte
Router & Routing
Lancom Router Site to Site Problem mit Außenstellen
gelöst mossoxFrageRouter & Routing24 Kommentare

Guten Tag zusammen, in der Hauptgeschäftsstelle nutzen wir einen Lancom 1781VA Router und haben i.d.R. zwei gleichzeitige IPSec Site ...

Netzwerke
Sporadische Ausfälle im gesamten Heimnetz
gelöst bilbo-dvdFrageNetzwerke20 Kommentare

Guten Morgen, ich habe einen Kabelanschluss bei Vodafone und mein Tarif wurde im März auf CableMax 1000 umgestellt. Ich ...

Router & Routing
RDP nur im internen Netz möglich nicht aber per vpn?
einfach112FrageRouter & Routing18 Kommentare

Hallo zusammen. Beim Kunden habe ich einen Server mit VMWARE laufen. Darauf ein Windows Server 2016 Essentials als VM ...

Sicherheit
Sicherheit oder bessere Benutzbarkeit?
StefanKittelFrageSicherheit17 Kommentare

Hallo, ich habe eine Webanwendung programmiert und sehe mich nun mit einer Frage zur Benutzbarkeit konfrontiert. Bei der Anmeldung ...

Internet
Über meinen WAN ist lidl.de nicht ereichbar
gelöst NetGodFrageInternet16 Kommentare

Hallo zusammen, mit meinem DTAG-Anschluß ist derzeit kein Durchkommen zu www.lidl.de möglich. Zu den selben Zeitpunkten ist es aber ...

Apache Server
Wer installiert mir Jitsi-meet mit Stun- Turn-Server und wartet dies?
gelöst default-userFrageApache Server16 Kommentare

Nachdem ich mit der Audio- und Videoqualität der meisten angebotenen Videokonferenz-Lösungen nicht zufrieden bin, möchte ich einen eigenen Jitsi-meet-Server ...

Ähnliche Inhalte
Visual Studio

GridView mit Drag-n-Drop oder vergleichbares

gelöst Aicher1998FrageVisual Studio7 Kommentare

Guten Abend, nachdem ich bereits seit 4 Tagen an einem UserControl in C# getüftelt hab, aber nichts brauchbares geschafft ...

Exchange Server

Drag and Drop Weiterleitung in Ordner möglich?

EdaseinsFrageExchange Server5 Kommentare

Hallo liebe Community, meine Frage ist schlicht, aber ich finde kaum bis gar kein Material dazu Kann man im ...

C und C++

C-Sharp WPF ListView Drag and Drop mit SelectionChangedEvent

gelöst mayho33FrageC und C++2 Kommentare

Hallo @ All! Ich versuche Drag'n'Drop in einer ListView<T> umzusetzen. Jedoch feuert SelectionChangedEventArgs nicht mehr. Hoffe es kann mir ...

Windows 10

Windows 10 Spring Creators Update (1803) und WinSCP Drag-n-Drop-Problem

gelöst PedantFrageWindows 104 Kommentare

Hallo, mehr ein Hinweis, denn eine Frage, wobei ich für eine Anregung dankbar wäre, mit der ich das hier ...

Windows 10

W10 1903 - kein Drag and Drop mehr auf Verknüpfungen möglich ?

gelöst HenereFrageWindows 102 Kommentare

Servus zusammen, mir ist eben nach dem einspielen der letzten Updates aufgefallen, dass ich keine Dateien mehr per Drag&Drop ...

Batch & Shell

Linie mit Leer überschreiben (Batch)

gelöst clragonFrageBatch & Shell3 Kommentare

Hey ihr Batch-ler da draußen! Ich entwickle grad meinen Eigenen Batch Safe auf Professionellem Level, also ECHTE Verschlüsselungen ( ...

Neue Fragen
Administrator Magazin
11 | 2020 Virtualisierung ist aus der IT nicht mehr wegzudenken. In der November-Ausgabe des IT-Administrator Magazins dreht sich der Schwerpunkt um das Thema "Server- und Storage-Virtualisierung". Darin erfahren Sie, wie sich die Virtualisierungstechnologie entwickelt hat, welche Varianten es im Bereich Server und Speicher gibt und wie ...
Neue Beiträge
Neue Jobangebote
Server- und Storage-VirtualisierungServer- und Storage-VirtualisierungBerechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid Cloud