找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21823|回复: 3

[文本处理] [已解决]求助批处理代码改进精简?

[复制链接]
发表于 2012-4-11 17:05:20 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-3 15:42 编辑
  1. cls
  2. @echo off
  3. SETLOCAL ENABLEDELAYEDEXPANSION

  4. set str=prt
  5. if exist *.%str%.* (
  6. for /f "delims=" %%i in ('dir /a-d /b /s *.%str%.*') do echo %%~xi "%%i" >> tmp1.txt
  7. sort /r<tmp1.txt>%str%.txt
  8. del tmp1.txt)else echo no %str%

  9. SETLOCAL ENABLEDELAYEDEXPANSION

  10. set str=igs
  11. if exist *.%str%.* (
  12. for /f "delims=" %%i in ('dir /a-d /b /s *.%str%.*') do echo %%~xi "%%i" >> tmp1.txt
  13. sort /r<tmp1.txt>%str%.txt
  14. del tmp1.txt)else echo no %str%

  15. SETLOCAL ENABLEDELAYEDEXPANSION

  16. set str=exe
  17. if exist *.%str%.* (
  18. for /f "delims=" %%i in ('dir /a-d /b /s *.%str%.*') do echo %%~xi "%%i" >> tmp1.txt
  19. sort /r<tmp1.txt>%str%.txt
  20. del tmp1.txt)else echo no %str%

  21. SETLOCAL ENABLEDELAYEDEXPANSION

  22. set str=rpt
  23. if exist *.%str%.* (
  24. for /f "delims=" %%i in ('dir /a-d /b /s *.%str%.*') do echo %%~xi "%%i" >> tmp1.txt
  25. sort /r<tmp1.txt>%str%.txt
  26. del tmp1.txt)else echo no %str%

  27. SETLOCAL ENABLEDELAYEDEXPANSION

  28. set str=sld
  29. if exist *.%str%.* (
  30. for /f "delims=" %%i in ('dir /a-d /b /s *.%str%.*') do echo %%~xi "%%i" >> tmp1.txt
  31. sort /r<tmp1.txt>%str%.txt
  32. del tmp1.txt)else echo no %str%

  33. :complete
  34. echo.
  35. pause
  36. exit
  37. pause


  38. 請問上面這些 str 要如何合併寫在一起,
  39. 才可以讓p看起來簡單一點。

  40. 謝謝
复制代码

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-4-11 19:50:38 | 显示全部楼层
请介绍一下代码的功能,高手都很忙的,看代码猜你的意图是很浪费时间的。
发表于 2012-4-11 20:02:00 | 显示全部楼层
  1. @echo off
  2. for %%a in (prt igs exe rpt sld) do (
  3.   if exist "*.%%a.*" (
  4.     (for /f "delims=" %%i in ('dir /a-d /b /s "*.%%a.*"') do (
  5.       echo %%~xi "%%i"
  6.     ))>tmp1.txt
  7.     sort /r tmp1.txt>%%a.txt
  8.     del tmp1.txt
  9.   ) else echo no %%a
  10. )
  11. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-4-11 20:19:45 | 显示全部楼层
本帖最后由 norno 于 2012-4-11 20:39 编辑

回复 3# apang
謝謝你的教導,
另謝謝2樓的告知。
這個p是要用來判別我的資料夾有沒有我要刪除的file.

可否再求教,
我要建立一個list.txt
這個 txt 裡有我想刪除檔案的副檔名,
然後寫一個p,
它會优先判斷是否有副檔名為 prt.* 的存在(這是pro/e所產生的副檔名  例:123.prt.1   456.prt.25)
如果有它會根據 list.txt 裡的副檔名,來刪除指定資料夾裡的檔案。
如果沒有副檔名為 prt.* 的存在
它會提示是否要繼續刪除的動作。
請幫忙,謝謝。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 03:31 , Processed in 0.028337 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表