Win7でバッチバックアップスクリプトを設定しようとしています。ほとんどの場合動作しますが、私はコードを複数回実行しています。私はいくつかの検索を行いましたが、バッチファイルが "()"のコードをどのように処理するかとは関係がありますが、それを修正する最良の方法は不明です。Windowsバッチスクリプト - for/D delims複数回実行
何か助けが素晴らしいだろう!
スクリプト: "%% I" == "%%〜Ndは" trueの場合
for /D %%d in (C:\toBackupDir\*.*) do (
for %%f in (C:\zipDir\*) do (
for /f "tokens=1 delims=_" %%i in ("%%~nf") do (
if "%%i"=="%%~nd" (
if "%%~tf"=="%%~td" (
echo "%%~nf" is "%%~nd" No Backup necessary.
) else (
7z.exe a -tzip -stl -mx=1 "C:\zipDir\%%~nd_%DATE:~-4%.%DATE:~4,2%.%DATE:~7,2%.zip" "%%d"
)
)
)
)
)
ライン "7z.exeは" 何度も実行されます。私の考えでは、ファイル名を分割する最後のforループが何度も実行されていますが、%iを取得して比較を行うと、私はそれを行います。 "7z.exe"行が実行されたらループから抜け出すことはできますか?私は、バッチファイルで壊れることはやりにくいと読んだことがあります。
コードの内訳が必要な場合はお知らせください。
ありがとうございます!
あなたは 'もし "%%〜TF" == "%%〜TD"('のか? 'c:\ zipdir'にファイルを作成しているので、' 7z'インスタンスが呼び出されるたびにその時刻が変更されます。おそらくそれは遅すぎるかもしれませんが、あなたがやろうとしていることをかなり忘れてしまいます。コメント( 'REM'コメントは' :: 'コメントではなくコードブロック内にあることを覚えておいてください)多くのことを説明してくれるかもしれません。 – Magoo
私たちは本当にコードの内訳を必要としません。あなたが実行しようとしているタスクと、その期待に関連して何が起こっているのかを確認してください。 – Compo
あなたの返事ありがとうございました。私は通常それを比較することはできません知っている。私は問題を抱えていたスクリプトの部分だけを掲載しました。私は一時ファイル上のスクリプトのこの部分を実行するFolderTimeUpdate b4を実行しています。 FolderTimeUpdateは各ディレクトリ内のすべてのファイルをスキャンし、親フォルダのタイムスタンプを子ディレクトリ内の最も古いファイルのタイムスタンプに更新します。7-Zipは-stlスイッチを使って最も古いフォルダにタイムスタンプを設定しています。空のフォルダがなく、Zipを手作業で整理している限り、これは機能します。スクリプトはまだ動作する必要があります...しかし、これは私が現在立ち往生している場所です。 –