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 IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Leerzeichen, Sonderzeichen in Dateinamen lassen Batch crashen

Mitglied: Domain-Jane

Domain-Jane (Level 1) - Jetzt verbinden

01.02.2015, aktualisiert 20:08 Uhr, 989 Aufrufe, 3 Kommentare

Hallo zusammen,

hier meine Frage zum Sonntag ;):

Mit dem Dir-Befehl lasse ich mir eine Datei erzeugen, indem Pfad+Dateinamen stehen, die ich anschließend
mit for Schleifen weiterverarbeiten lasse.

Funktioniert soweit alles super, nur dass die Batch Zeichen wie "&" interpretiert und dann komische Sachen macht.
Bei Leerzeichen im Pfad oder Dateinamen stürzt sie einfach ab.

Der Dir-Befehl ist:
01.
dir "y:\store\*" /s/b > "C:\files.txt"
Mit den beiden Schleifen gibt es dann bei Leerzeichen oder Steuerzeichen Probleme:
01.
for /f "usebackq delims=" %%u in ("C:\files.txt") do call :output "%%u"
01.
for /f "tokens=1-3" %%i in ('dir "%file%" /-C /S ^|find "Datei(en)" ^|find "Bytes"') do set size=%%k
Habt ihr eine Idee, wie ich den Dir-Befehl verändern kann, damit die Ausgabe für die For-Schleifen lesbar ist?
Oder gibt es vielleicht für die Schleifen noch zusätzliche Optionen?

Liebe Grüße!
Janet
Mitglied: Domain-Jane
01.02.2015, aktualisiert um 20:42 Uhr
So, der Fehler mit den Leerzeichen ist behoben (doppelte Anführungszeichen).
Allerdings gibt es immer noch Probleme mit Steuerzeichen (z.B. "&") im Dateinamen.

Offensichtlich produziert schon die erste Schleife den Fehler beim Setzen der Variable %file%:

01.
for /f "usebackq delims=" %%u in ("C:\files.txt") do call :output "%%u" 
02.
:goto eof 
03.
:output 
04.
set "file=%1"
Bitte warten ..
Mitglied: rubberman
01.02.2015, aktualisiert um 20:57 Uhr
Hallo Janet.

Da hast du dir was schönes eingebrockt
Der Fehler kommt in Zeile 4. Wenn du z.B. "a&b c.txt" übergibst, dann ergibt sich dort ...
set "file="a&b c.txt""
... und schon stehen wieder die falschen Dinge in einem Paar Anführungszeichen.
Um dich vor anderen Unzulänglichkeiten (bspw. Dateinamen mit Prozentzeichen) zu schützen, würde ich die Übergabe als Parameter ganz entfernen und statt dessen vorab die Zuweisung der Variablen vornehmen.

01.
@echo off &setlocal 
02.
for /f "usebackq delims=" %%u in ("C:\files.txt") do ( 
03.
  set "file=%%~u" 
04.
  call :output 
05.
06.
pause 
07.
exit /b 
08.
 
09.
:output 
10.
echo "%file%" 
11.
exit /b
Grüße
rubberman
Bitte warten ..
Mitglied: Domain-Jane
01.02.2015 um 21:22 Uhr
Oh verdammt, danke! ;)
Das ist schon was. Das ist was! Und zwar sehr gut!
Works like charm.

Vielen Dank, du Pfiffiger!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch: doppeltes Leerzeichen in Dateinamen?

gelöst Frage von WoswaasiBatch & Shell3 Kommentare

Hallo! Wir verarbeiten bei uns in der Arbeit Audio-Dateien, die über Nacht in 5-Minuten-Abschnitte gesplittet werden. Ich habe dafür ...

Ubuntu

Ubuntu - Sonderzeichen aus Dateinamen entfernen

gelöst Frage von HenereUbuntu3 Kommentare

Servus zusammen, ich habe hier eine Fotosammlung auf nem Webserver mit root-Zugriff liegen. Ich würde gerne rekursiv die Dateien ...

Batch & Shell

Leerzeichen aus Dateinamen entfernen

gelöst Frage von noob-xBatch & Shell3 Kommentare

Hallo Profis, ich möchte bei vielen Dateien in einem Ordner die Leerzeichen aus den Dateinamen entfernen Dateien sehen so ...

Batch & Shell

CMD - Stern und Sonderzeichen in Dateinamen entfernen

Frage von batch2goBatch & Shell14 Kommentare

Gueten Tag zusammen Mit grossem Interesse lese ich euer Beiträge (und würde mich an dieser Stelle als Azubi bezeichnen). ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 45 MinutenGoogle Android

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 StundeSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 4 StundenMicrosoft2 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 22 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server35 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

CPU, RAM, Mainboards
32 gb RAM zu wenig?
Frage von pcguyCPU, RAM, Mainboards13 Kommentare

Hallo zusammen, mein PC verfügt über 32GB Ram. Nun kriege ich bei grossen Dateien im Illustrator die Fehlermeldung das ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing9 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...