如何在CMD中通过for循环将指定.py文件批量复制到多目录?
当然可以!用CMD实现批量复制的方案
完全能用for循环+copy命令搞定这个需求,我给你整理了两种实用的写法,适配不同场景:
方法一:按数字序列精准复制(适合确定是1_patient到30_patient的情况)
直接通过数字循环生成目标目录名,命令如下:
for /L %i in (1,1,30) do copy "D:\Getting_Started_PyCharm\pyradiomics\Export_Excel.py" "D:\Getting_Started_PyCharm\pyradiomics\NRRD\%i_patient\"
命令解释:
/L:指定这是数字序列循环,(1,1,30)代表从1开始,每次递增1,直到30停止%i:循环变量,每次迭代会替换成当前的数字(1到30),自动拼接成1_patient、2_patient这类目录名- 引号:给路径加引号是为了避免路径中出现空格时命令报错,建议养成这个习惯
方法二:按目录名通配符复制(更灵活的场景)
如果后续目录数量有变化,或者想匹配所有*_patient格式的子目录,可以用通配符遍历:
for /D %d in ("D:\Getting_Started_PyCharm\pyradiomics\NRRD\*_patient") do copy "D:\Getting_Started_PyCharm\pyradiomics\Export_Excel.py" "%d\"
命令解释:
/D:表示只遍历目录,不会处理文件"*_patient":通配符规则,匹配NRRD文件夹下所有以_patient结尾的子目录%d:循环变量,每次迭代代表一个匹配到的目标目录的完整路径,无需手动指定数字范围
几个实用的注意事项
- 若你是把命令写到**批处理脚本(.bat文件)**里执行,记得把循环变量前的
%改成%%,比如for /L %%i in (1,1,30)... - 要是想自动覆盖目标目录里的同名文件(不弹出确认提示),可以给copy命令加
/Y参数,示例:copy /Y "源文件路径" "目标路径" - 执行前先确认源文件路径和目标目录路径是否正确,避免出现“找不到文件/目录”的报错
内容的提问来源于stack exchange,提问作者Tommaso Di Noto
相关产品推荐
相关产品推荐

