如何创建脚本以扫描.vsd文件并转换为.vsdx文件并将它们放在目标文件夹中。

时间:2017-11-30 01:03:34

标签: powershell visio

所以就像标题所说,我有超过一千个.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();
}

2 个答案:

答案 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文件:)