[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. set "folder1=C:\Users\dmns25163\Desktop\AAA"
  4. set "folder2=C:\Users\dmns25163\Desktop\BBB"
  5. for %%a in ("%folder1%\*.*") do (
  6. if not exist "%folder2%\%%~nxa" (
  7. move "%%a" "%folder2%"
  8. ) else (
  9. call :1
  10. )
  11. )
  12. pause
  13. exit
  14. :1
  15. for /l %%l in (2,1,200) do (
  16. if not exist "%folder2%\%%~na(%%l)%%~xa" (
  17. move "%%a" "%folder2%\%%~na(%%l)%%~xa"
  18. exit /b
  19. )
  20. )
复制代码

我在写脚本中,发现一个问题。在此请教一下路过的老师、大佬,为什么我把200改为2000000,移动完一个文件后会等待很久才继续移动下一个?echo %%l观察了一下,并没有在循环中,但是实际还是在执行for /l 的循环,数字越大等待越久。
bat小白,请多指教!谢谢!

TOP

回复 1# adfs945


    之前已经有过类似的了,要善于搜索
  1. @echo off
  2. set /p yourprogramname=what your program name:
  3. :start
  4. cd /d "%~dp0"
  5. if not exist %yourprogramname%.txt (
  6.     set /a "fx=0"
  7. )
  8. if exist "%yourprogramname%.txt" (
  9.    set /a "fx=0"
  10.    set /a "b=1"
  11.    set /a "fx=%fx%+1"
  12.    set "OutFile=%yourprogramname%%fx%.txt"
  13. )
  14. if "%fx%" equ "0" (
  15.        set "OutFile=%yourprogramname%.txt"
  16. )
  17. :1
  18. (for /f "delims=" %%i in ('dir /b /a-d *.*') do (
  19.     if "%%i" neq "%OutFile%" (
  20.         echo,%%~ni
  21.     )
  22. ))>"%OutFile%"
  23. if exist "%yourprogramname%0 .txt" (
  24.    ren "%yourprogramname%0.txt" "%yourprogramname%1 .txt"
  25. )
  26. pause >nul
  27. goto start
复制代码
这个脚本会给出一个类似"文件名0.txt"的,如果不用的话就在进下一个循环的时候改掉"文件名1.txt"
QQ 1980286392

TOP

返回列表