Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch - Drag And Drop Files - Ampersand Bug

Mitglied: rubberman

rubberman (Level 3) - Jetzt verbinden

05.04.2014 um 15:38 Uhr, 4952 Aufrufe, 2 Kommentare, 3 Danke

Hallo Community.

Wie man weiß, kann man Parameter in einer Batchtatei über die Ausdrücke %1 bis %9 abgreifen, bzw. mit %* um gleich alle Parameter zu bekommen. Bei dragged/dropped Dateien gibt es dabei einen Bug, der nie gefixt wurde:
Alle auf diese Weise übergebenen Dateien kommen mit dem kompletten Pfad an. Sollte im Pfad oder im Dateiname ein Leerzeichen vorhanden sein, werden die Parameter automatisch in Anführungszeichen gesetzt und die Verarbeitung funktioniert problemlos. Alle Parameter ohne Leerzeichen kommen ohne umschließende Anführungszeichen. Das macht die Verarbeitung von Pfaden/Dateien mit einem & unmöglich. Hierbei wird am & Zeichen abgebrochen, unabhängig davon, ob nachträglich im Code Anführungszeichen eingefügt werden (zB. "%~1") oder nicht. Ein Workaround für diesen Bug ist die Verarbeitung der Umgebungsvariable %CMDCMDLINE%. Hier gibt es dann aber Probleme, wenn die übergebenen Dateipfade FOR-Trennzeichen wie ',' ';' '=' enthalten. Eine Reihe an Stringersetzungen ist nötig, um am Ende jeden Parameter in Anführungszeichen zu setzen um eine problemlose Verarbeitung zu ermöglichen...
Soviel zur langen Vorrede, nun aber mal zum Code, der zeigt wie die Umsetzung aussieht
(Darauf achten, dass sich nach dem letzten % in Zeile 13 kein Leerzeichen einmogelt!)
Ausnahmsweise kommen hier mal EXITs zum Einsatz, um Fehlermeldungen zu unterdrücken.

Referenzen:
www.dostips.com/forum/viewtopic.php?f=3&t=5479
stackoverflow.com/questions/1243240/drag-and-drop-batch-file-for-multiple-files/5370380#5370380
stackoverflow.com/questions/5471556/pretty-print-windows-path-variable-how-to-split-on-in-cmd-shell/7940444#7940444

Grüße
rubberman
Mitglied: pieh-ejdsch
12.04.2014, aktualisiert 06.10.2019
moin rubberman,

den Bug kannte ich noch nicht. Ganz schön durchgetüftelte Ersetzung.
Ich habe diese mithilfe der Quotes in der Forschleife gelöst:
Gruß Phil
Bitte warten ..
Mitglied: rubberman
12.04.2014 um 21:03 Uhr
Hallo Phil.

Ganz schön durchgetüftelte Ersetzung.
Die ist im Grundsatz nicht auf meinem Mist gewachsen. Stammt letztlich aus dem letzten Link und ist von mir nur für Leerzeichen angepasst worden. Schade nur, dass man die verzögerte Variablenerweiterung nicht durchgängig nutzen kann. Ich denke, dann könnte man noch etwas mehr herauskitzeln, was die Anzahl (eigentlich die Gesamtlänge) der übergebenen Parameter angeht.

Ich habe diese mithilfe der Quotes in der Forschleife gelöst
Sehr schönes Beispiel, wie man mit Quotes als Delimiter arbeiten kann
+1

Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Sicherheit

Böser Bug in Domänenkennwortrichtlinie!

Information von DerWoWussteSicherheit2 Kommentare

Ich spiegele mal Borncity: In Kürze: Nutzt Ihr eine Domänen-Kennwortrichtlinie der herkömmlichen Art (keine PSO-Richtlinie)? Ja? Und plant Ihr, ...

iOS

Taschenrechner Bug unter 11.3 behoben

Information von sabinesiOS

Der Bug wurde zwar schon einmal behoben, aber wohl nur durch Abschalten der Animation, wodurch die Zahlen schneller eingegeben ...

iOS

iOS-Bug unterbindet vollständiges VPN-Tunneling

Information von transoceaniOS

Moin, seit dem letzten Update hat iOS für iPhone und iPad ein Problem mit der Verschlüsselung. Lest selbst. Grüße ...

Sicherheit

Zufällige Speicherzuweisung: Windows-Bug hebelt Sicherheitsmechanismus ASLR aus

Information von Penny.CilinSicherheit1 Kommentar

Anbei eine neue Meldung bzgl.ASLR: Heise Newsticker: Zufällige Speicherzuweisung: Windows-Bug hebelt Sicherheitsmechanismus ASLR aus Gruss Penny

Neue Wissensbeiträge
Humor (lol)

Wie verhindere ich, dass Websitebesucher die Werbecookies abschalten?

Information von DerWoWusste vor 1 TagHumor (lol)6 Kommentare

Ich habe gerade auf die Antwort gefunden: ich täusche einen langwierigen Änderungsprozess vor und biete nebenbei einen Cancelbutton, den ...

Sicherheit

Windows Setup erlaubt elevation of privilege plus DC Updates

Information von DerWoWusste vor 1 TagSicherheit3 Kommentare

Eine interessante neue Sicherheitslücke. Details gibt es wenig, aber die klare Empfehlung: If you are using WSUS or MEM ...

Exchange Server

Exchange Server 2016 and the End of Mainstream Support

Information von Dani vor 2 TagenExchange Server

As hopefully many of you already know Exchange Server 2016 enters the Extended Support phase of its product lifecycle ...

Viren und Trojaner

Schwachstelle in Teamviewer oder aufgeflogene Backdoor?

Information von magicteddy vor 3 TagenViren und Trojaner1 Kommentar

Moin, die Interpretation überlasse ich jedem selber, ich habe eine deutliche Abneigung dagegen. Wer es nutzen muss sollte schleunigst ...

Heiß diskutierte Inhalte
Windows Server
Windows Server "mit" oder "ohne" Antivirensoftware
gelöst Frage von Dr.MabuseWindows Server23 Kommentare

Antiviren-Software: Fluch oder Segen? Die Frage der Sinnhaftigkeit von Antiviren-Software ist nicht neu Die Software kostet Performance, sorgt oft ...

Windows Server
Patchday August Server 2019 - zerstört Hyper V Dienste
Frage von ichkriegediekrieseWindows Server19 Kommentare

Guten Morgen alle zusammen Gestern habe ich, wie oft die Sicherheitsupdates vom Patchday eingespielt da ja doch einige Sicherheitsupdates ...

Hardware
Azubi Projekt - Serverhardware
Frage von nachgefragtHardware19 Kommentare

Hallo Administratoren, für ein Azubi-Projekt benötige ich euren Rat, um ihr das Thema Serverhardware näher zu bringen: Server zusammenbauen ...

iOS
Facetime Nummer
gelöst Frage von ral9004iOS15 Kommentare

Hallo Ein Kollege bat mich, ihm für den Videochat meine Facetime Nummer zu mailen. Meine Facetime App läuft auf ...

Administrator Magazin
08 | 2020 Cloud-First-Strategien sind inzwischen die Regel und nicht mehr die Ausnahme und Workloads verlagern sich damit in die Cloud – auch Datenbanken. Dort geht es aber nicht nur um die Frage, wie die Datenbestände in die Wolke zu migrieren sind, sondern auch darum, welche Datenbank ...