【发布时间】:2018-01-30 00:46:42
【问题描述】:
我需要使用 PowerShell 将文件从一个目录移动到同一硬盘驱动器上的另一个目录。我需要做的硬盘驱动器几乎总是在空间的限制。我的问题是当我尝试使用 cmdlet Move-Item 时,我收到错误消息“磁盘空间不足。”。但是,当在 Windows 资源管理器上使用 Ctrl+X 和 Ctrl+V 时,它可以正常工作。如果我释放硬盘空间,我还可以使用命令Move-Item。
所以,我想知道是否有人可以指导找到使用 PowerShell 来“剪切”和“粘贴”文件的解决方案,该解决方案不需要更多磁盘空间来执行命令?
Get-ChildItem -Path "\\10.72.100.203\Pending\$ticket*" -Recurse -Force |
Move-Item -Destination "\\10.72.100.203\Completed"
结果:
Move-Item:磁盘空间不足。 在 C:\script\test2.ps1:66 char:76 + ... e -Force |移动项目 -Destination "\\10.72.100.203\Completed" -Force ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ + CategoryInfo : WriteError: (\\10.72.100.203...Mark 0718-3.VHD:FileInfo) [Move-Item], + FullyQualifiedErrorId : MoveFileInfoItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand 电源外壳版本: PS C:\脚本> $PSVersionTable 名称 值 ---- ----- PS版本 5.1.15063.502 PSEdition 桌面版 PSCompatibleVersions {1.0、2.0、3.0、4.0...} 构建版本 10.0.15063.502 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 序列化版本 1.1.0.1【问题讨论】:
-
使用 move.exe 命令怎么样?
move "\\10.72.100.203\Pending\$ticket*" "\\10.72.100.203\Completed" -
@lit 这在 PowerShell 中不起作用,因为
Move是Move-Itemcmdlet 的别名,现在对他来说是失败的。也许使用[System.Io.FileInfo].MoveTo()方法或其他东西。试试Get-ChildItem -Path "\\10.72.100.203\Pending\$ticket*" -Recurse -Force | ForEach{$_.MoveTo("\\10.72.100.203\Completed\$($_.Name)"} -
@TheMadTechnician - 我想知道 OP 的系统是否有更多问题。这对我有用。甚至 Move-Item 也适合我。我能够在只有 42 GiB 空闲空间的系统上移动 45 GiB 文件。
-
正在使用哪个版本的 PowerShell?
$PSVersionTable请将输出复制并粘贴到问题中。
标签: powershell