我正在尝试自动化一个简单的桌面清理程序,并尝试编写一个命令来恢复我的程序所做的一切。目前,我的程序将桌面上的所有内容分类到一个名为“media”的文件夹中(位于桌面上),其中包含每个项目类别的进一步子目录。本质上,
Desktop >> Media >> {bunch of dirs for item categories}
所以我正在尝试编写一个命令,该命令从子目录中获取所有已排序的项目并将它们转储回桌面,而无需移动文件夹本身。到目前为止,我已经尝试过:
dir -attributes !directory -recurse | foreach-object {move-item $_ -destination "$home/desktop"}
这会产生 powershell 试图移动其 ACTUAL 路径类似于以下内容的对象的问题:
C:\________\desktop\media\images\sample.jpg
使用此路径:
C:\________\desktop\media\sample.jpg
因为我是从“media”文件夹执行命令,导致错误如下:
move-item : Cannot find path 'C:\Users\bhiggins\desktop\media\Basic Engineering Circuit Analy - J. David Irwin.pdf' because it does not exist. At line:1 char:55 + ... -recurse | foreach-object {move-item $_ -destination "$home/desktop"} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\bhiggi...David Irwin.pdf:String) [Move-Item], ItemNotFou ndException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.MoveItemCommand
那么我将如何修改我的命令,以便将正确的路径传递给移动项指令,同时将执行位置保持为“媒体”?
我希望我在这里理解了你的问题。你真的不需要foreach-Object来做到这一点。这将获取源文件夹中的任何内容并将其移动到目标文件夹(在您的情况下为桌面)
Get-ChildItem -Path $path -recurse | Move-Item -Destination $destination
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句