所以就像标题所说,我有超过一千个.vsd文件,我需要转换为.vsdx。但是它们分散在目录中的子文件夹中。
我的问题:是否可以创建一个脚本来搜索目录中的所有.vsd文件,将它们转换为.vsdx并将它们放在某个文件夹中?
我们已经有一个用于在单个目录中将.vsd文件转换为.vsdx的脚本,但是我不知道如何让脚本的其余部分完成我需要它做的事情。
提前致谢。
$directoryToUpdate='C:\Users\username\Desktop\vsd\'
$visio= New-Object -com Visio.Application
foreach($vsdFile in (get-childitem "$directoryToUpdate\*.vsd")){
write-host "Working on $vsdfile"
$doc=$visio.Documents.Open($vsdFile.FullName)
$vsdxFileName=[io.path]::ChangeExtension($vsdFile,'.vsdx')
$doc.SaveAs($VSDXFileName)
$doc.close();
}
答案 0 :(得分:0)
只需更改此行get-childitem "$directoryToUpdate\*.vsd"
到
get-childitem "$directoryToUpdate" -recurse -filter *.vsd
即使在子文件夹下也会搜索.vsd文件。
答案 1 :(得分:0)
更改以下内容:
$directoryToUpdate='C:\Users\username\Desktop\vsd\'
到
$directoryToUpdate='C:\Users\username\Desktop\vsd\*'
并更改:
"$directoryToUpdate\*.vsd
至
"$directoryToUpdate\*.vsd" -Recurse
现在它将进行递归搜索并将其保存在工作目录中,我对powershell一无所知,并在5分钟内就知道了。
感谢您分享您的powershell脚本,我自己使用它将vsd转换为vsdx文件:)