[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何判断文件夹内是否有我要的文件?

我有一個p(PurgeSubs.bat),它的主要功能是,
在資料夾按右鍵,會出現這個選項,點擊後會call purge.bat
並依照purge.bat的內容來刪檔。
現在我想成如下的功能:
它會优先判斷是否有副檔名為 prt.* 的存在(這是pro/e所產生的副檔名  例:123.prt.1   456.prt.25)
如果有它會根據 list.txt 裡的副檔名,來刪除指定資料夾裡的檔案。
如果沒有副檔名為 prt.* 的存在
它會提示是否要繼續刪除的動作。

請幫忙,謝謝
附上原code

PurgeSubs.bat
  1. @echo off
  2. cls
  3. title Purge Subs
  4. if !%1==! goto nopath
  5. if not exist %1*.* goto badpath
  6. :start
  7.   title Purge Subs from %1
  8.   call :subpurge %1
  9.   FOR /D /R %%a IN (*.*) do call :subpurge "%%a"
  10.   goto complete
  11. :subpurge
  12.   echo del old version start
  13.   echo Purging directory is
  14.   echo %1
  15.   cd "%1"
  16.   call purge.bat
  17.   goto :EOF
  18. :nopath
  19.   echo.
  20.   echo ERROR - No path provided....
  21.   echo.
  22.   echo You must provide a path when calling %0
  23.   goto complete
  24. :badpath
  25.   echo.
  26.   echo ERROR - "%1" is not a valid path....
  27.   echo.
  28.   echo You must provide a valid path when calling %0
  29.   goto complete
  30. :complete
  31. echo.
  32. pause
  33. exit
复制代码
purge.bat
  1. @echo off
  2. D:\purge\purge.exe %1 %2 %3 %4 %5
  3. del *.ig*
  4. del *.rp*
  5. del *.SLD*
  6. exit /B %ERRORLEVEL%
复制代码

  1. @echo off
  2. dir /b | find ".prt." >nul 2>&1 && goto :Exist || goto :NotExist
  3. :Exist
  4. for /f "delims=" %%a in (list.txt) do (
  5.     del /f /q "%%a"
  6. )
  7. goto :end
  8. :NotExist
  9. set input=n
  10. set /p input=是否继续删除(y/n)?
  11. if "%input%" neq "y" (
  12.     goto :end
  13. )
  14. del *.ig*
  15. del *.rp*
  16. del *.SLD*
  17. :end
  18. pause
复制代码
1

评分人数

    • norno: 感謝幫忙技术 + 1

TOP

回复 3# gawk
先謝謝你的幫忙,但是執行後,出現

'input' 不是內部或外部命令、可執行的程式批次檔。

可否再幫看一下。

TOP

回复 4# norno


    把@echo off删掉,看看是哪一行在报错。

TOP

回复 5# gawk

執行時,如下圖

TOP

回复 6# norno


    你抄代码的时候是不是把input前面的set /p漏掉了?

TOP

回复 7# gawk

抱歉,我漏了一個括號,
但是執行結果,還是不行。

TOP

回复 8# norno


    看不懂你的图想说明什么,你直接说哪里不行吧。

TOP

回复 9# gawk
我按了"y"
依然無法刪檔。

TOP

回复 10# norno


    那说明你的del命令写错了

TOP

返回列表