Batch file 此批处理脚本赢得';我不工作,为什么?

Batch file 此批处理脚本赢得';我不工作,为什么?,batch-file,Batch File,我有以下脚本,它将无法工作。我正在尝试创建4个文件,比较所有文件,保留最小的文件,并删除其余较大的3个文件。以下是我所拥有的: @echo off dir /s /b /A-D folder\ > list.txt for /r folder %%a in (*.*) do ( dime.exe -A SCANTYPE=Q -A SCANL=7 "%%a" "%%a.q" dime.exe -A SCANTYPE=Q -A SCANL=7 -A SCANM=21 "%%a" "

我有以下脚本,它将无法工作。我正在尝试创建4个文件,比较所有文件,保留最小的文件,并删除其余较大的3个文件。以下是我所拥有的:

@echo off
dir /s /b /A-D folder\ > list.txt
for /r folder %%a in (*.*) do (
   dime.exe -A SCANTYPE=Q -A SCANL=7 "%%a" "%%a.q"
   dime.exe -A SCANTYPE=Q -A SCANL=7 -A SCANM=21 "%%a" "%%a.q21"
   make.exe -A SCANTYPE=X -A SCANL=7 "%%a" "%%a.x"
   make.exe -A SCANTYPE=X -A SCANL=7 -A SCANM=21 "%%a" "%%a.x21"
      for %%b in ("%%a.q") do for %%c in ("%%a.q21") do for %%d in ("%%a.x") do for %%e in ("%%a.x21") do (
         if %%~zb LEQ %%~zc (del "%%a.q21") else (del "%%a.q")
         if %%~zb LEQ %%~zd (del "%%a.x") else (del "%%a.q")
         if %%~zb LEQ %%~ze (del "%%a.x21") else (del "%%a.q")
   )
for /F "tokens=*" %%b in (list.txt) do del /Q "%%b"
del list.txt

有什么想法吗?

我可能错了,但我想你打字打错了。老实说,我不明白,虽然哈哈
dir/s/b/A-D文件夹\>>list.txt

@echo off
目录/s/b/A-D文件夹\>list.txt
对于(*.*)中的/r文件夹%%a,请执行以下操作(
dime.exe-A SCANTYPE=Q-A SCANL=7“%%A”“%%A.Q”
dime.exe-A SCANTYPE=Q-A SCANL=7-A SCANM=21“%%A”“%%A.q21”
make.exe-A SCANTYPE=X-A SCANL=7“%%A”“%%A.X”
make.exe-A SCANTYPE=X-A SCANL=7-A SCANM=21“%%A”“%%A.x21”
对于/f“skip=1 delims=“%%b in('
目录/a-d/b/os“%%a.q”“%%a.q21”“%%a.x”“%%a.x21”
“)删除/q“%%b”>nul 2>nul
)
对于/F“delims=“%b in(list.txt)do del/Q”%%b”
del list.txt

代码中缺少右括号。文件大小检查背后的逻辑已转换为
dir
命令,以获得大小排序列表,跳过第一个列表并删除其余的。

我重复检查,没有,我没有放入>>。其余部分使用2个程序创建4个文件。然后我尝试比较所有四个文件,保留最小的文件,删除3个较大的文件。大卫:在批处理文件中,dir/b>file.txt创建file.txt。在我的Windows7机器上,这是可行的。这不是问题所在。文件夹中每个文件的所有4个文件都已创建,这不是问题所在。“如果”部分是有问题的部分。
创建新文件或重写现有文件,
>
创建新文件或附加到现有文件。无论如何,问题当然不是重定向。很好的尝试,但是你的答案根本解决不了问题。你能把输出文件放到一个单独的目录中(在
文件夹\
树之外)吗?