我正在尝试使用here中的脚本将我已转换为mp4的avi文件移回原始文件夹。一切似乎都运行正常,脚本会尝试将文件移动到正确的位置(见下文),但不会移动mp4文件。
如果:执行目标“项目:Z:\ AVI \ MVI_4965.mp4目的地:Z:\ Pictures \ 2011 \ 04_21_11_Bergen \ MVI_4965.mp4”中的“移动文件”操作。
所有文件都位于我的Z:NAS驱动器上,我已从PS Z:\>
开始修改脚本以解释此问题(见下文)。
# Create a hashtable with key = file basename and value = containing directory
$mediaFiles = @{}
Get-ChildItem -Recurse .\Pictures | ?{!$_.PsIsContainer} | ForEach-Object {
$mediaFiles[$_.BaseName] = $_.DirectoryName
}
# Look through lost files and if the lost file exists in the hash, then move it
Get-ChildItem -Recurse .\AVI | ?{!$_.PsIsContainer} | ForEach-Object {
if ($mediaFiles.ContainsKey($_.BaseName)) {
Move-Item -whatif $_.FullName $mediaFiles[$_.BaseName]
}
}
有什么想法可以阻止正在移动的文件或如何纠正?
答案 0 :(得分:3)
这就是-WhatIf
的重点。它只是说明了如果不实际执行它会做什么,这样你就可以先验证脚本了。从Move-Item
命令中删除它。