如何使用 CMD 将可移动驱动器的内容移动到同一驱动器上的文件夹?

如何使用 CMD 将可移动驱动器的内容移动到同一驱动器上的文件夹?

我想将可移动驱动器的所有内容(包括子文件夹)移动到驱动器内的文件夹中。

它在 Windows 资源管理器中的外观如下:

https://i.stack.imgur.com/2FVIN.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

进一步阅读

答案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

相关内容