我想创建一个计划脚本,将所有文件夹的 .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' 因为它不存在。
我在做什么错了?
谢谢
答案 0 :(得分:0)
Move-Item
接受管道输入,因此不需要ForEach-Object
,%
,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\
}