如何使用Windows命令将父文件夹除指定文件外的所有文件移入新子文件夹
问题原因
你之前执行的move parent_folder ./parent_folder/child_folder无法生效的核心原因是参数逻辑错误:该命令的作用是尝试将parent_folder整个文件夹本身移动到其自身的子目录下,属于文件系统不允许的循环嵌套操作,完全没有指定要移动父文件夹内部的文件,自然达不到预期效果。
可直接执行的操作方案
以下方案默认你的父文件夹名为parent_folder,需要新建的子文件夹名为child_folder,操作前请先将命令行的工作目录切换到parent_folder的上级目录,避免路径匹配错误。
CMD命令提示符环境
- 先创建目标子文件夹,执行命令:
mkdir parent_folder\child_folder - 执行排除
index.html的文件移动操作,直接在命令行运行以下命令即可:for %f in (parent_folder\*.*) do @if not "%~nxf"=="index.html" move "%f" parent_folder\child_folder\注意:如果你是把上述逻辑写入
.bat批处理脚本执行,需要把命令里的%f全部替换为%%f,否则会出现变量解析错误。
该命令默认仅移动父文件夹根目录下的文件,不会递归处理嵌套子文件夹;如果需要把父文件夹根目录下除index.html外的子文件夹也一并移动,把匹配规则parent_folder\*.*修改为parent_folder\*即可。
PowerShell环境(Win10/11默认终端兼容)
- 创建目标子文件夹,执行命令:
New-Item -ItemType Directory -Path parent_folder\child_folder -Force - 执行排除
index.html的移动操作:Get-ChildItem -Path parent_folder -Exclude "index.html" | Move-Item -Destination parent_folder\child_folder\扩展:如果需要递归移动父文件夹下所有层级、除
index.html之外的所有内容,在Get-ChildItem后加上-Recurse参数即可。
内容的提问来源于stack exchange,提问作者Jayakumari Arumugham
相关产品推荐
相关产品推荐

