我有以下脚本,它不会工作。我正在尝试创建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有什么想法吗?
发布于 2014-12-11 21:28:45
@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 /f "skip=1 delims=" %%b in ('
dir /a-d /b /os "%%a.q" "%%a.q21" "%%a.x" "%%a.x21"
') do del /q "%%b" >nul 2>nul
)
for /F "delims=" %%b in (list.txt) do del /Q "%%b"
del list.txt代码中缺少右括号。文件大小检查背后的逻辑已经转换为dir命令,以获得大小排序列表,跳过第一个列表并删除其余的。
发布于 2014-12-11 20:21:25
我可能错了,但我想你把>>打错了。老实说,我不明白其他的,哈哈。dir /s /b /A-D folder\ >> list.txt
https://stackoverflow.com/questions/27422598
复制相似问题