我正在尝试执行以下操作,Verify.exe 爬取目录结构并一一检查文件是否存在任何缺陷。文件作为命令行参数传递给 verify.exe。如果在文件中发现任何缺陷,它会打印一个错误代码(一行字符串)。如果文件是合法的,则不会打印任何内容。我想为每个错误代码创建一个文件夹,并将错误文件复制到该文件夹中,以便查看它。如果文件没有错误,则什么也不做。
需要检查的文件位于 D:\Test\docs\r1 - 出于测试目的,我在 D:\Test\docs\r1 中只有一个文件。
::@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 次
- 没有创建文件夹
- 将 exe 命令行输出分配给 MyVar 似乎存在问题
先感谢您