【问题标题】:PowerShell Move-Object script taskPowerShell 移动对象脚本任务
【发布时间】:2018-08-03 20:54:05
【问题描述】:

我想创建一个计划脚本,它将所有文件夹的 .exe 项目移动到另一个目录。

这是我尝试做的:

$folderItems = Get-ChildItem -Path C:\Users\Administrator\Downloads\Test | where {$_.Extension -eq ".exe"}

这是输出:

PS C:\Users\Administrator\Downloads> $folderItems

Directory: C:\Users\Administrator\Downloads\Test


Mode                LastWriteTime         Length Name                                                                
----                -------------         ------ ----                                                                
-a----         6/4/2018  10:42 PM       10563368 bsplayer272.setup.exe                                               
-a----        5/27/2018   9:46 PM         658488 setup.exe                                                           
-a----         6/4/2018   7:28 PM        2948240 uTorrent.exe   

但是当我尝试移动它们时:

$folderitems | % {
  Move-Item -Path C:\Users\Administrator\Downloads\Test\$_.name -Destination D:\Downloads\
}

这是我得到的错误:

移动项目:找不到路径 'C:\Users\Administrator\Downloads\Test\bsplayer272.setup.exe.name' 因为它不存在。

我做错了什么?

谢谢,

【问题讨论】:

  • Move-Item $_.FullName -Destination D:\Downloads

标签: windows powershell items


【解决方案1】:
  • Move-Item 接受管道输入,所以不接受 ForEach-Object,%needed,
    也不是中间变量。
  • 如果将通配符附加到路径中,那么 where 也是多余的。

Get-ChildItem -Path C:\Users\Administrator\Downloads\Test\*.exe |
    Move-Item -Destination D:\Downloads\

如果你像@Theo 的建议那样使用你自己的命令,或者

$folderitems | % {
  Move-Item -Path 'C:\Users\Administrator\Downloads\Test\'+$_.Name -Destination D:\Downloads\
}

$folderitems | % {
  $_ | Move-Item -Destination D:\Downloads\
}

【讨论】:

  • 或..$folderitems | Move-Item -Path {$_.FullName} -Destination 'D:\Downloads\'
猜你喜欢
  • 2016-06-19
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多