PowerShell - Как удалить подпись - PullRequest
0 голосов
/ 25 апреля 2018

Я создал скрипт powershell, который обнаруживает подписи в файлах MSWord.Я хотел бы, чтобы скрипт удалял эти надоедливые подписи.

Может кто-нибудь помочь?У меня проблемы с поиском .delete, который работает здесь.

$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

1 Ответ

0 голосов
/ 25 апреля 2018

Я не могу проверить банкомат, если в перечислении $doc.Shapes предусмотрен метод удаления, но вы можете попробовать это: EDIT изменил скрипт после подсказки 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...