2016-04-17 119 views
-1

我试图使用here中的脚本将我转换为mp4的avi文件移回原始文件夹。所有似乎都工作正常,脚本试图将文件移动到正确的位置(见下文),但mp4文件不移动。移动具有相同名称但扩展名不同的文件

如果:执行操作 “移动文件” 目标 “项目:Z:\ AVI \ MVI_4965.mp4目的地:Z:\图片\ 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] 
    } 
} 

任何想法什么是停止被移动的文件或如何更正?

回答

2

这就是-WhatIf的观点。它只是说明它会做什么而没有真正做到这一点,所以你可以先验证脚本。将其从Move-Item命令中删除。

+0

完美工作,谢谢,我几乎是任何PowerShell的新手! – jimbo34

+2

很高兴我能帮到你。请记住用左侧的按钮标记选定的答案,这样问题就会被解答。 :-)欢迎来到SO –

相关问题