古いファイルを削除するためにforfilesツールと同じパスを使用するように、ディレクトリ文字列の最後のスラッシュを削除したかったのです。私は解決策を試しましたhereしかし、それは動作しませんでした。スクリプトは結果をテキストファイルに保存します。ディレクトリーが誤った形式であるため、forfilesは機能しません。 最後のバックスラッシュを削除するだけです。"C:\Database\Backup\"
。ディレクトリ文字列の最後のスラッシュをバッチファイルで部分文字列にする方法はありますか?
以下の実行可能コードは私が試みたコードです。問題は、これはあなたが常にset "variable=value"
"variable=value"
ペアで引用されなければならない理由の良い例です"C:\Database\Backup\" :~0,-1
代わり"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%%〜シンボル数が多い場合は、後で削除してください。 – TessellatingHeckler
これを実行すると、出力は「C:\ Database \ Backup \」になります。 – wondie
Are出力は '' C:\ Database \ Backup \ ''ではないことを確かめ、後続の引用符 '' 'を削除していますか?それが今私が期待していることです。 '〜0、-2%'を試してください... – TessellatingHeckler