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

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

[复制链接]
发表于 2024-7-30 17:12:25 | 显示全部楼层 |阅读模式
  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
复制代码
发表于 2024-7-30 19:52:31 | 显示全部楼层
  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
复制代码
发表于 2024-7-30 22:21:11 | 显示全部楼层
发表于 2024-7-31 10:34:16 | 显示全部楼层
本帖最后由 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. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 21:04 , Processed in 0.013888 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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