批处理脚本无法移动文件夹到Plans & Reports子目录求助
问题原因
你现有的move命令仅匹配带扩展名的文件,无法识别无后缀文件和文件夹,所以只能移动文件不能移动同级目录。你之前写的robocopy命令语法错误,robocopy的第一个参数为源目录路径,不需要追加通配符*.*,所以执行失败。
解决方案
直接替换你原脚本中的move "%CD%"\*.* "%CD%"\"Plans & Reports"这一行,替换为以下robocopy命令即可:
robocopy "%CD%" "%CD%\Plans & Reports" /E /MOVE /XD "%CD%\Plans & Reports" /NFL /NDL /NJH /NJS
参数说明
/E:递归处理所有子目录,包含空目录/MOVE:执行移动操作,复制完成后自动删除源位置的文件/目录/XD "%CD%\Plans & Reports":排除目标目录本身,避免出现循环移动的逻辑错误/NFL /NDL /NJH /NJS:关闭robocopy默认的日志输出,避免打乱你脚本原有交互提示
完整修正后脚本
@echo off setlocal EnableDelayedExpansion ECHO =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ECHO = Welcome to the New Project Setup Wizard = ECHO =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ECHO. set /p npn="Enter Project Name: " chcp 65001 >nul md "Plans & Reports" :: 修正后的移动命令,可移动所有文件+目录 robocopy "%CD%" "%CD%\Plans & Reports" /E /MOVE /XD "%CD%\Plans & Reports" /NFL /NDL /NJH /NJS copy "%~dp0New Project Template\0) Project - Ox Calc.xlsm" copy "%~dp0New Project Template\1) Project - Master.esw" copy "%~dp0New Project Template\θ) Project - Volume Report.pdf" ren "0) Project - Ox Calc.xlsm" "0) %npn% - Ox Calc.xlsm" ren "1) Project - Master.esw" "1) %npn% - Master.esw" ren "θ) Project - Volume Report.pdf" "θ) %npn% - Volume Report.pdf" chcp 437 >nul
额外添加的>nul是为了屏蔽chcp命令的默认输出,让脚本交互更清爽,不影响原有功能。
内容的提问来源于stack exchange,提问作者Bryce
相关产品推荐
相关产品推荐

