我对powershell很新(我刚刚在当地的大学学习了一个学期)。我有一个目录,其中有很多图像文件(.WMF)不断更新,我需要编写一个脚本来获取这些文件,将它们保存到一个新目录,并将它们旋转90度并添加“_90.wmf”结局。我已经搜索了一段时间,并想出了一个将旋转图像的小代码,但我无法将其保存到新目录。有什么帮助吗?
if (Test-Path J:\CutRite\v90\Import\MV_Nest_PTX_copy)
{
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
foreach($file in (ls "J:\CutRite\v90\Import\MV_Nest_PTX_copy\*.wmf")){
$convertfile = new-object System.Drawing.Bitmap($file.Fullname)
$convertfile.rotateflip("Rotate90FlipNone")
$newfilname = ($file.Fullname)
$convertfile.Save($newfilname, "wmf")
$file.Fullname
}
}
else
{
Write-Host "Path not found."
}
答案 0 :(得分:0)
你快到了,你只需要正确创建新的文件名:
if (Test-Path J:\CutRite\v90\Import\MV_Nest_PTX_copy)
{
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
foreach($file in (ls "J:\CutRite\v90\Import\MV_Nest_PTX_copy\*.wmf")){
$convertfile = new-object System.Drawing.Bitmap($file.Fullname)
$convertfile.rotateflip("Rotate90FlipNone")
$newfilename = $file.Fullname.replace(".wmf","_90.wmf")
$convertfile.Save($newfilname)
}
}
您可以使用System.String的replace
方法将.wmf
更改为_90.wmf
并将其存储在$newfilename
变量中,然后使用该名称保存图像。
另外,不确定你为什么要加载System.Windows.Forms
- 除非你在一个你没有包含的片段中使用它,否则你不需要它。
如果您想完全保存到其他目录:
$newfilename = "C:\path\to\new\dir\" + $file.name.replace(".wmf","_90.wmf")