![如何使用 CMD 将可移动驱动器的内容移动到同一驱动器上的文件夹?](https://linux22.com/image/1500895/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20CMD%20%E5%B0%86%E5%8F%AF%E7%A7%BB%E5%8A%A8%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%9A%84%E5%86%85%E5%AE%B9%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%90%8C%E4%B8%80%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
答案1
如何将驱动器的内容(包括子文件夹)移动到其他文件夹
使用以下批处理文件(MoveContent.cmd):
@echo off
setlocal
rem create target folder
md "Target Folder"
rem use dir to get a list of file and folders
rem use findstr /v to exclude target folder from the list
rem use for to loop through the list
for /f "usebackq tokens=*" %%i in (`dir /b ^| findstr /v "Target Folder"` ) do (
rem move the items in the list
move "%%i" "Target Folder"
)
endlocal
笔记:
- 这也会将批处理文件移动到
Target Folder
。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 目录- 显示文件和子文件夹的列表。
- 查找字符串- 在文件中搜索字符串。
- 对于/f- 循环命令以执行另一个命令的结果。
- 移动- 将文件从一个文件夹移动到另一个文件夹。
答案2
您还可以使用 PowerShell:
Get-ChildItem | Where-Object {$_.Name -ne 'Target folder'} | Move-Item -Destination 'Target folder'
管道中的第一个命令 ( Get-ChildItem
) 获取当前文件夹中的所有条目。第二个命令按名称进行过滤,将除名为 的项目之外的所有内容传递给下一个命令Target folder
。最后一个命令将项目(无论是文件还是文件夹)移动到目标文件夹中。
紧凑版本:
$t='Target folder';gci|?{$_.Name -ne $t}|mv -Dest $t
脚本(.ps1
)版本,参见PowerShell 标签 wiki有关启用脚本的说明:
$target = $args[0]
Get-ChildItem | Where-Object {$_.Name -ne $target} | Move-Item -Destination $target
然后您将使用目标文件夹作为唯一参数来调用该脚本。
要从普通命令提示符运行 PowerShell 命令,请键入以下内容,powershell -command
然后键入可以在 PowerShell 提示符中输入的任何内容(用引号括起来):
powershell -command "$t='Target folder';gci|?{$_.Name -ne $t}|mv -Dest $t"
答案3
如果要将可移动驱动程序的内容移动到同一可移动驱动器上的另一个文件夹,DOS 有移动命令。
说 r:是驱动器号。
r:\>md everything
r:\>move *.* everything