Ich wollte den letzten Schrägstrich einer Verzeichniszeichenfolge entfernen, so dass ich denselben Pfad für das forfiles-Tool verwende, um alte Dateien zu löschen. Ich habe die Lösung here versucht, aber es hat nicht funktioniert. Das Skript speichert die Ausgabe in einer Textdatei, so dass ich das Ergebnis sehe. Die Forefiles funktionieren nicht, da das Verzeichnis ein falsches Format hat. Was ich nur den letzten Rückwärtsstrich entfernen möchte "C:\Database\Backup\"
.Wie wird der letzte Schrägstrich einer Verzeichniszeichenfolge in einer Stapeldatei verknüpft?
Der ausführbare Code unten ist, was ich versucht habe. Das Problem ist, die Linie 6 gibt "C:\Database\Backup\" :~0,-1
statt "C:\Database\Backup"
set BACKUP_DIR="C:/Database/Backup/"
set LOG_FILE=%BACKUP_DIR%log_file.txt
if not exist BACKUP_DIR mkdir %BACKUP_DIR%
set BACKWARD_SLASH_DIR=%BACKUP_DIR:/=\%
echo %BACKWARD_SLASH_DIR% > %LOG_FILE%
set DELETE_DIR=%BACKWARD_SLASH_DIR%:~0,-1%
echo %DELETE_DIR% >> %LOG_FILE%
forfiles -p %DELETE_DIR% -s -m *.* -d -1 -c "cmd /c echo Deleted @file" >> %LOG_FILE%
forfiles -p %DELETE_DIR% -s -m *.* -d -1 -c "cmd /c del @path"
'DELETE_DIR =% BACKWARD_SLASH_DIR%: ~ 0, -1%' -zu viele% Symbole, entfernen Sie die nach _DIR – TessellatingHeckler
Wenn ich das mache, ist die Ausgabe '" C: \ Database \ Backup \ "' – wondie
Are Sie sind sicher, dass die Ausgabe nicht "C: \ Database \ Backup \" ist und das nachfolgende Zitat abgeschnitten ""? Das erwarte ich jetzt. Versuchen Sie '~ 0, -2%' ... – TessellatingHeckler