如何使用Powershell跨卷移动文件/文件夹?

Ily*_*yax 15 powershell

我尝试使用PowerShell移动文件夹

move-item  c:\test c:\test2
Run Code Online (Sandbox Code Playgroud)

有效,但是

move-item c:\test  \\192.168.1.50\c$\test2
Run Code Online (Sandbox Code Playgroud)

没告诉我

Move-Item:源和目标路径必须具有相同的根.移动不会跨卷运行.

Joe*_*oey 24

如果test是目录,它将无法工作,如状态文档Move-Item:

Move-Item 将在同一提供程序支持的驱动器之间移动文件,但它将仅在同一驱动器中移动目录.

在这种情况下你可以使用Copy-Item后跟a Remove-Item:

try {
  Copy-Item -Recurse C:\test \\192.168.1.50\c$\test2 -ErrorAction Stop
  Remove-Item -Recurse c:\test
} catch {}
Run Code Online (Sandbox Code Playgroud)

如果你不依赖于PSDrives,另一种选择就是简单地使用xcopy或robocopy.

  • 如果您使用CI + RI,则必须确保在CI失败(例如无法访问的目标)的情况下不会删除项目.将'-ErrorAction Stop'与Try/catch指令结合使用 (3认同)