PowerShell-如何删除签名
我制作了一个powershell脚本,用于检测MSWord文件中的签名。我希望脚本删除那些讨厌的签名 有人能帮忙吗?我找不到一个在这里有效的.deletePowerShell-如何删除签名,powershell,ms-word,Powershell,Ms Word,我制作了一个powershell脚本,用于检测MSWord文件中的签名。我希望脚本删除那些讨厌的签名 有人能帮忙吗?我找不到一个在这里有效的.delete $folder = "c:\test\*" $include = "*.doc", "*.docx" $word = new-object -comobject word.application $word.visible = $false Add-Type -AssemblyName System.Drawing Get-ChildIte
$folder = "c:\test\*"
$include = "*.doc", "*.docx"
$word = new-object -comobject word.application
$word.visible = $false
Add-Type -AssemblyName System.Drawing
Get-ChildItem -path $folder -include $include | ForEach-Object {
$doc = $word.documents.open($_.fullname)
$howmany = 0
for ($i = 1; $i -le $doc.Shapes.Count; $i++) {
if ($doc.Shapes.Item($i).type -eq [Microsoft.Office.Core.MsoShapeType]::msoPicture) {
$howmany++
}
}
if ($howmany -ne 0) {
$_.name + " contient " + $howmany + " signature(s)"
}
}
$word.quit()
cmd /c pause | out-null
如果$doc.Shapes枚举提供删除方法,我无法测试ATM,但您可以尝试以下方法:
在BenH的提示后编辑更改的脚本
## Q:\Test\2018\04\25\SO50023775.ps1
$folder = "c:\test\*"
$include = "*.doc","*.docx"
$word = new-object -comobject word.application
$word.visible = $false
Add-Type -AssemblyName System.Drawing
Get-ChildItem -path $folder -include $include | ForEach-Object {
"Processing $($_.FullName)"
$doc = $word.documents.open($_.fullname)
$howmany = 0
for ($i = 1; $i -le $doc.Shapes.Count; $i++) {
if ($doc.Shapes.Item($i).type -eq [Microsoft.Office.Core.MsoShapeType]::msoPicture) {
$howmany++
$doc.Shapes.Item($i).Delete
}
}
if ($howmany -ne 0) {
$_.name + " contient " + $howmany + " signature(s)"
$doc.save()
$doc.close()
}
}
$word.quit()
"press any key..."
cmd /c pause | out-null
是否要删除所有形状?或者只有最后一个?任何和所有属于签名形状集合的形状似乎都有一个标记。但是,您似乎需要对传入shape对象索引的shapes集合调用delete。无法运行。当它尝试删除时,我得到以下输出:void delete您可以尝试使用$Shape.delete并在$Shape.delete后面加上括号吗?成功了!我不得不在删除后加上一个$I,但它成功了!谢谢谢谢你的帮助!对不起,如果我没有马上接受答案,我不是很熟悉这个网站。再次感谢各位!