首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个批处理脚本不能工作,为什么?

这个批处理脚本不能工作,为什么?
EN

Stack Overflow用户
提问于 2014-12-11 20:11:59
回答 2查看 67关注 0票数 0

我有以下脚本,它不会工作。我正在尝试创建4个文件,比较它们所有,并保留最小和删除剩余的,较大的3个文件。这就是我所拥有的:

代码语言:javascript
复制
@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

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2014-12-11 21:28:45

代码语言:javascript
复制
@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
EN

Stack Overflow用户

发布于 2014-12-11 20:21:25

我可能错了,但我想你把>>打错了。老实说,我不明白其他的,哈哈。dir /s /b /A-D folder\ >> list.txt

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27422598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档