私の質問は、いくつかのフォルダーとサブフォルダーをバッチ ファイルで自動的にバックアップするために書いているスクリプトに関するものです。
現在、何らかの進行状況インジケーターを読み取り可能な形式で、できればパーセントで実装しようとしています。
まず、次のコマンドでコピーする合計サイズを読み取ります。
FOR /R "C:\Users\XXX" %%F IN (*.*) DO (
set /a overall=!overall!+%%~zF
)
テスト バッチの特定のフォルダーの場合、これは 266,173,879 バイトのサイズを返します。
ただし、この数値を for ループの後で、たとえば 1024 (キロバイトの場合) で除算しようとすると、
set /a overall=%overall%/1024
バッチは、「/1024 はここでは構文的に使用できません」という行に沿って何かを返します (おそらく正しい翻訳を知っているでしょう。私の翻訳はドイツ語です)。
括弧とスペースを追加/削除しようとしましたが、同じエラーが発生し続けます。
目隠しをして見えない私の構文に何か問題がありますか?
そうでない場合、C++ 変数に割り当てられる %overall% の値を提供する C++ .exe をどのように呼び出しますか? (C++ は、私が最小限から基本的な知識しか持っていない唯一の他のプログラミング言語です。PowerShell はオプションではなく、通常の Windows Batch でなければなりません)
関連する完全なコード:
FOR /R "C:\Users\XXX" %%F IN (*.*) DO (
set /a overall=!overall!+%%~zF
)
set /a overall=%overall%/1024
FOR /R "C:\Users\XXX" %%F IN (*.*) DO (
xcopy "%%F" "E:%%~pF" %parameter%>nul
cls
echo Copying... Progress: !size! of !overall! KB copied.
)