次のことをしようとしています.Verify.exeはディレクトリ構造をクロールし、ファイルを1つずつチェックして欠陥を探します. ファイルは、コマンド ライン引数として verify.exe に渡されます。ファイルに欠陥が見つかった場合は、エラー コード (1 行の文字列) が出力されます。ファイルが正当である場合、何も出力されません。エラーコードごとにフォルダーを作成し、そのフォルダーに問題のあるファイルをコピーして確認したいと考えています。ファイルにエラーがない場合、何も行われません。
チェックする必要があるファイルは D:\Test\docs\r1 にあります - テスト目的で、D:\Test\docs\r1 に 1 つのファイルしかありません。
::@echo off
CD D:\Test\doc\r1\
FOR /R %%a IN (*) DO (
ECHO %%a
FOR /F %%b IN ('D:\Test\doc\Verify.exe /i:"%%a"') do SET MyVAR=%%b
IF NOT "%MyVAR%" == "" (
ECHO "IF one"
IF EXIST D:\Test\doc\%MyVAR% (
ECHO "IF two"
MD D:\Test\doc\%MyVAR%
)
COPY %%a D:\Test\doc\%MyVAR%
)
SET MyVAR=
ECHO "------------------------"
)
コマンドラインで次のエコーが表示されます。
D:\Test\doc>CD D:\Test\doc\r1\
D:\Test\doc\r1>FOR /R %a IN (*) DO (
ECHO %a
FOR /F %b IN ('D:\Test\doc\Verify.exe /i:"%a"') do SET MyVAR=%b
IF NOT "" == "" (
ECHO "IF one"
IF EXIST D:\Test\doc\ (
ECHO "IF two"
MD D:\Test\doc\
)
COPY %a D:\Test\doc\
)
SET MyVAR=
ECHO "------------------------"
)
D:\Test\doc\r1>(
ECHO D:\Test\doc\r1\A5 Incident Management.doc
FOR /F %b IN ('D:\Test\doc\Verify.exe /i:"D:\Test\doc\r1\A5 Incident Management.doc"') do SET MyVAR=%b
IF NOT "" == "" (
ECHO "IF one"
IF EXIST D:\Test\doc\ (
ECHO "IF two"
MD D:\Test\doc\
)
COPY D:\Test\doc\r1\A5 Incident Management.doc D:\Test\doc\
)
SET MyVAR=
ECHO "------------------------"
)
D:\Test\doc\r1\A5 Incident Management.doc
D:\Test\doc\r1>SET MyVAR=0x8004170b
"------------------------"
D:\Test\doc\r1>
誰かが次の問題で私を助けてくれますか..
- ループは 3 回実行されました
- フォルダは作成されません
- MyVar への exe コマンド ライン出力の割り当てに問題があるようです
前もって感謝します