Bug im Script - wer kennt sich aus?
Hallo!
Ich beziehe mich auf folgenden Thread: &query=ordnergr%C3%B6%C3%9Fe+batch verzeichnisstruktur auslesen und ordnergroesse anzeigen
Bug: Wenn im Verzeichnispfad ein &-Zeichen vorkommt, so steigt das Script aus..
Da ich dies nicht vermeiden kann und ich das Script leider auch nicht ganz interpretieren kann, wollte
ich fragen ob mir hier jemand helfen kann. Wie muß ich das Script abändern, dass auch &-Zeichen
im Pfad verarbeitet werden?
Schonmal vielen Dank im Vorraus!
PS: Schönes WE!
Ich beziehe mich auf folgenden Thread: &query=ordnergr%C3%B6%C3%9Fe+batch verzeichnisstruktur auslesen und ordnergroesse anzeigen
Bug: Wenn im Verzeichnispfad ein &-Zeichen vorkommt, so steigt das Script aus..
Da ich dies nicht vermeiden kann und ich das Script leider auch nicht ganz interpretieren kann, wollte
ich fragen ob mir hier jemand helfen kann. Wie muß ich das Script abändern, dass auch &-Zeichen
im Pfad verarbeitet werden?
Schonmal vielen Dank im Vorraus!
PS: Schönes WE!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 64321
Url: https://administrator.de/contentid/64321
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo -kuwi-!
Wenn Du in der allerletzten Zeile, ganz am Ende, "%~f1" unter Anführungszeichen setzt, sind diese zwar auch in der Ausgabe enthalten, aber der Batch müsste laufen.
Alternativ könntest Du alle Zeilen nach der alleinstehenden ")" (also ab Zeile 9) durch die folgenden ersetzen:
Grüße
bastla
Wenn Du in der allerletzten Zeile, ganz am Ende, "%~f1" unter Anführungszeichen setzt, sind diese zwar auch in der Ausgabe enthalten, aber der Batch müsste laufen.
Alternativ könntest Du alle Zeilen nach der alleinstehenden ")" (also ab Zeile 9) durch die folgenden ersetzen:
if not defined DirSize goto :eof
set "space20=____________________"
set "Pfad=%~f1"
set "Pfad=%Pfad:&=^&%"
set "Dirsize=%space20%%Dirsize%"
echo %DirSize:~-15% %Pfad%
Grüße
bastla
... bzw noch ein paar Anführungszeichen anstatt (nur, um sie durchgängig zu verwenden):
In dieser Version läuft es bei mir.
Grüße
bastla
[Edit] Kommentar angepasst. [/Edit]
::------snipp Dirsize.bat ---developed on administrator.de 2006/2007
:: Parameter1 Verzeichnisname [opt Par2: /R wie Rekursiv] [opt. par3 =Ebenen]@echo off & setlocal & Set DIRCMD=
IF /i "%2"=="/R" for /R "%~1" %%a in (.) do @%0 "%%a" %3
if not "%2"=="" Set /a "Level=%2+2"
if defined level for /f "delims=\ tokens=1,%level%" %%i in ("%~1") do if not "%%j"=="" goto :eof
If exist "%~1" (
for /f "tokens=3" %%c in ('dir "%~1" /s ^2^>nul^| findstr /c:"Datei(en)" ') do set DirSize=%%c
)
if not defined DirSize goto :eof
set "space20=____________________"
set "Pfad=%~f1"
set "Pfad=%Pfad:&=^&%"
set "Dirsize=%space20%%Dirsize%"
echo %DirSize:~-15% %Pfad%
::------snapp Dirsize.bat
Grüße
bastla
[Edit] Kommentar angepasst. [/Edit]
Hallo -kuwi-!
""%1"" würde ich als Overkill bezeichnen ...
Wenn Du die Grundstriche nicht magst, könntest Du zumindest, wie es der Variablenname auch schon vorgibt, 20 Leerzeichen verwenden - ansonsten sind die Zeilen
schlicht entbehrlich.
Grüße
bastla
[Edit] Sorry, war aufgrund der mangelnden Formatierung mit < code> und < /code> (jeweils ohne Leerzeichen) nicht zu erkennen, dass die "_" noch da sind ... [/Edit]
""%1"" würde ich als Overkill bezeichnen ...
Wenn Du die Grundstriche nicht magst, könntest Du zumindest, wie es der Variablenname auch schon vorgibt, 20 Leerzeichen verwenden - ansonsten sind die Zeilen
set "space20="
:: und auch
set "Dirsize=%space20%%Dirsize%"
Grüße
bastla
[Edit] Sorry, war aufgrund der mangelnden Formatierung mit < code> und < /code> (jeweils ohne Leerzeichen) nicht zu erkennen, dass die "_" noch da sind ... [/Edit]