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

[文件操作] [已解决]bat批处理代码排除筛选要怎么写?

本帖最后由 1989615wx 于 2023-5-29 19:44 编辑

例如:pdf文件,如果文件名里面没有‘已处理’这3个字,就自动在文件名的最前面添加‘待处理’这3个字
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 1989615wx 于 2023-5-28 16:24 编辑

回复 2# 77七


你好 替换成你的代码以后,我原本有一条代码就失效了,能否帮我看看,就是下面第45行的代码,输入了以后没反应了。
  1. @echo off
  2. title !!不删!!点我批量在文件名前添加前缀.bat
  3. color F0
  4. echo   1、【原点印务】
  5. echo   2、【百姓印务】
  6. echo   3、【鑫金星:760】
  7. echo   4、【鑫金星:1030】
  8. echo   5、【雅美高】
  9. echo   6、【华印汇彩】
  10. echo   7、【华美丰:460】
  11. echo   8、【华美丰:620】
  12. echo   9、【华美丰:920】
  13. echo  10、【添加自定义文字】
  14. echo  00、【撤销添加的前缀】
  15. echo,&set /p xz=请输入数字后回车:
  16. if /i "%xz%"=="1" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "1030_790_原点印务__文件名:"') do (
  17. ren "%%i" "1030_790_原点印务__文件名:%%~nxi"
  18. )
  19. if /i "%xz%"=="2" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "1030_800_百姓印务__文件名:"') do (
  20. ren "%%i" "1030_800_百姓印务__文件名:%%~nxi"
  21. )
  22. if /i "%xz%"=="3" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "760_605_鑫金星__文件名:"') do (
  23. ren "%%i" "760_605_鑫金星__文件名:%%~nxi"
  24. )
  25. if /i "%xz%"=="4" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "1030_800_鑫金星__文件名:"') do (
  26. ren "%%i" "1030_800_鑫金星__文件名:%%~nxi"
  27. )
  28. if /i "%xz%"=="5" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "1030_790_雅美高__文件名:"') do (
  29. ren "%%i" "1030_790_雅美高__文件名:%%~nxi"
  30. )
  31. if /i "%xz%"=="6" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "910_665_华印汇彩__文件名:"') do (
  32. ren "%%i" "910_665_华印汇彩__文件名:%%~nxi"
  33. )
  34. if /i "%xz%"=="7" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "460_395_华美丰__文件名:"') do (
  35. ren "%%i" "460_395_华美丰__文件名:%%~nxi"
  36. )
  37. if /i "%xz%"=="8" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "620_485_华美丰__文件名:"') do (
  38. ren "%%i" "620_485_华美丰__文件名:%%~nxi"
  39. )
  40. if /i "%xz%"=="9" for /f "delims=" %%i in ('dir /b /a-d *.pdf ^|find /v "文件名" ^|find /v "920_760_华美丰__文件名:"') do (
  41. ren "%%i" "920_760_华美丰__文件名:%%~nxi"
  42. )
  43. if /i "%xz%"=="10" echo,&set /p targetDate=请输入自定义文字:
  44. if /i "%xz%"=="10" for /f "delims=" %%f in ('dir/b/a-d *.pdf*') do (if not "%%~nxf"=="%0" ren "%%f" "%targetDate%%%~nxf")
  45. if /i "%xz%"=="00" for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  46. set "newName=%%~nxi"
  47. set "oldName=%%~fi"
  48. setlocal enabledelayedexpansion
  49. for /l %%l in (1,1,10) do (
  50. set "newName=!newName:*:=!"
  51. )
  52. echo ren "!oldName!" "!newName!"
  53. ren "!oldName!" "!newName!"
  54. endlocal
  55. )
  56. exit
复制代码

TOP

回复 9# qixiaobin0715


    感谢帮助!测试了下,执行以后有些文件的后缀名被删了...

TOP

回复 12# qixiaobin0715




    的确是的,加上!str!引号就解决了,你的代码优化的挺棒!! 目前还有一个小问题,就是代码运行后需要按任意键进行二次确认,这一步有些多余,可否去掉,感谢!

TOP

返回列表