[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
文件夹和文件名是否含有空格?
bat小白,请多指教!谢谢!

TOP

本帖最后由 77七 于 2023-6-17 20:21 编辑
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "C:\Users\Administrator\Desktop\test1\"
  4. for /f "delims=" %%a in ('type "1.txt"') do (
  5.         setlocal enabledelayedexpansion
  6.         for %%b in (%%a) do (
  7.                 if defined folder (
  8.                         if exist "D:\文件数据库\%%b" (
  9.                                 copy "D:\文件数据库\%%b" "!folder!"
  10.                         ) else (
  11.                                 >>log.txt echo %%b
  12.                         )
  13.                 ) else (
  14.                         set "folder=%%b"
  15.                         md "!folder!"
  16.                 )
  17.         )
  18.         endlocal
  19. )
  20. pause
复制代码

试试行吗
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 23# feiyan


  
  1. @echo off
  2. rem 文本格式 "A" "1.pdf" "2.pdf"
  3. rem 批处理保存为ansi编码格式
  4. cd /d "C:\Users\Administrator\Desktop\test1\"
  5. for /f "delims=" %%a in ('type "1.txt"') do (
  6.         setlocal enabledelayedexpansion
  7.         for %%b in (%%a) do (
  8.                 if defined folder (
  9.                         if exist "D:\文件数据库\%%~b" (
  10.                                 copy "D:\文件数据库\%%~b" "!folder!"
  11.                         ) else (
  12.                                 >>log.txt echo %%~b
  13.                         )
  14.                 ) else (
  15.                         set "folder=%%~b"
  16.                         md "!folder!"
  17.                 )
  18.         )
  19.         endlocal
  20. )
  21. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 28# feiyan


  1. @echo off
  2. rem 文本格式 a|1.pdf|2*.pdf
  3. rem 批处理保存为ansi编码格式
  4. cd /d "C:\Users\Administrator\Desktop\test1\"
  5. for /f "tokens=1* delims=|" %%a in ('type "1.txt"') do (
  6. md "%%a" 2>nul
  7. set "folder=%%a"
  8. call :1 "%%b"
  9. )
  10. pause & exit
  11. :1
  12. for /f "tokens=1* delims=|" %%x in ("%~1") do (
  13. if exist "D:\文件数据库\%%x" (
  14. copy "D:\文件数据库\%%x" "%folder%"
  15. ) else (
  16. >>log.txt echo %%x
  17. )
  18. if "%%y" neq "" (
  19. call :1 "%%y"
  20. ) else (
  21. exit /b
  22. )
  23. )
复制代码
bat小白,请多指教!谢谢!

TOP

回复 30# feiyan


   
我刚测试了一下,代码正常,1.txt是否是代码中要求的格式?
  1. a|1.pdf|2*.pdf
复制代码
bat小白,请多指教!谢谢!

TOP

回复 33# feiyan


  
  1. A|1*|2*|3*|
复制代码
尽量不要修改格式,虽然这样也没错,就怕把代码也随意改了,格式中包括含有空格的文件名等等,不需要加引号了。
上一个代码,我用你的格式,测试也没发现问题,
可以试试点击上一个代码的 copy 按钮 复制代码,不要选中复制。
或者试试以下的
  1. @echo off
  2. rem 文本格式 a|1.pdf|2*.pdf
  3. rem 批处理保存为ansi编码格式
  4. cd /d "C:\Users\Administrator\Desktop\test1\"
  5. for /f "tokens=1* delims=|" %%a in ('type "1.txt"') do (
  6. echo 创建文件夹 "%%a"
  7. md "%%a" 2>nul
  8. set "folder=%%a"
  9. set "str="
  10. call :1 "%%b"
  11. echo=
  12. )
  13. pause & exit
  14. :1
  15. if not defined str (
  16. set "str=%~1"
  17. )
  18. for /f "tokens=1* delims=|" %%x in ("%str%") do (
  19. echo 查找文件 "%%x"
  20. if exist "D:\文件数据库\%%x" (
  21. copy "D:\文件数据库\%%x" "%folder%"
  22. ) else (
  23. >>log.txt echo %%x
  24. )
  25. if "%%y" neq "" (
  26. set "str=%%y"
  27. goto :1
  28. ) else (
  29. exit /b
  30. )
  31. )
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 36# feiyan




谢谢!请以你的名义捐助到论坛吧!
http://bbs.bathome.net/thread-10403-1-1.html
bat小白,请多指教!谢谢!

TOP

回复 39# feiyan


  
  1. @echo off
  2. rem 文本格式 a|1.pdf|2*.pdf
  3. rem 批处理保存为ansi编码格式
  4. cd /d "C:\Users\Administrator\Desktop\test1\"
  5. for /f "tokens=1* delims=|" %%a in ('type "1.txt"') do (
  6. echo 创建文件夹 "%%a"
  7. md "%%a" 2>nul
  8. set "folder=%%a"
  9. set "str="
  10. call :1 "%%b"
  11. echo=
  12. )
  13. pause & exit
  14. :1
  15. if not defined str (
  16. set "str=%~1"
  17. )
  18. for /f "tokens=1* delims=|" %%x in ("%str%") do (
  19. echo 查找文件 "%%x"
  20. (for /f "delims=" %%i in ('dir /b /s /a-d "d:\文件数据库\%%x" 2^>nul') do (
  21. copy "%%i" "%folder%"
  22. )) || (
  23. >>log.txt echo %%x
  24. )
  25. if "%%y" neq "" (
  26. set "str=%%y"
  27. goto :1
  28. ) else (
  29. exit /b
  30. )
  31. )
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表