Board logo

标题: [文件操作] 移动文件的bat代码逻辑上应该没问题 不知到为什么运行不了 [打印本页]

作者: mdzzx    时间: 2024-7-30 17:12     标题: 移动文件的bat代码逻辑上应该没问题 不知到为什么运行不了

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "des=target_mp4"
  4. if not exist "%des%"
  5. (
  6. mkdir "%des%"
  7. )
  8. for /r %%d in (.) do
  9. (
  10. if /i not "%%~fd"=="%~dp0%des%\"
  11. (
  12. echo  enter %%d
  13. for %%f in ("%%d\*.mp4") do
  14. (
  15. if exist %%f
  16. (
  17. move "%%f" "%des%\"
  18. )
  19. )
  20. )
  21. )
  22. echo MP4 files have been moved to %des%
  23. pause
复制代码

作者: 77七    时间: 2024-7-30 19:52

  1. @echo off
  2. cd /d "%~dp0"
  3. set "des=target_mp4"
  4. mkdir "%des%" 2>nul
  5. set "_cd=%cd%\"
  6. for /r /d %%d in (.) do (
  7. if /i "%%~fd" neq "%_cd:\\=\%%des%" (
  8. move "%%~fd\*.mp4" "%des%\" 2>nul
  9. )
  10. )
  11. pause
复制代码

作者: Batcher    时间: 2024-7-30 22:21

回复 1# mdzzx




http://bbs.bathome.net/thread-31727-1-1.html
作者: aloha20200628    时间: 2024-7-31 10:34

本帖最后由 aloha20200628 于 2024-7-31 10:40 编辑

回复 1# mdzzx

简言之》
   一。复合语块如 if 的判断表达式之后不能断行,其后须有左括号(断行前),或另一个命令(语块),例如
  1. if not exist "abc" mkdir "abc"
  2. ::或
  3. if not exist "abc" (
  4.    mkdir "abc"
  5. )
复制代码
二。复合语块如 for 的 do 之后不能断行,其后须有左括号(断行前),或另一个命令(语块),例如
  1. for /r %%d in (.) do echo,%%d
  2. ::或
  3. for /r %%d in (.) do (
  4.     echo,%%d
  5. )
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2