我有以下脚本,它不起作用。我正在尝试创建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
有什么想法吗?
答案 0 :(得分:1)
@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
命令以获取大小排序列表,跳过第一个并删除其余列表。
答案 1 :(得分:-1)
我可能错了,但我认为你错了#{1}}。哈哈,老实说不了解其余部分。 >>