Я рекомендую добавить следующую строку после экспорта в PDF:
ThisWorkbook.Sheets("Sheet1").Select
(где, например, Sheet1
- это единственный лист, который вы хотите активировать впоследствии)
Если оставить несколько листов в выбранном состоянии, могут возникнуть проблемы с выполнением некоторого кода. (например, unprotect не работает должным образом при активном выборе нескольких листов.)
Я не думаю, что полностью понимаю, что вы пытаетесь сделать. Если вы хотите, чтобы выходные данные были сгруппированы по файлам, вы можете перенаправить в Format-Table
параметр -GroupBy
:
gci . -include "*.sql" -recurse `
| select-string -pattern 'someInterestingString' `
| Format-Table -GroupBy Path
Если вы хотите получить только имена файлов, которые соответствуют без какой-либо другой информации вы можете использовать Select-Object
с параметром -Unique
:
gci . -include "*.sql" -recurse `
| select-string -pattern 'someInterestingString' `
| Select-Object -Unique Path
Если вас интересует только имя файла, независимо от того, является ли само имя кратным раз в иерархии, то вместо этого вы можете выбрать свойство Filename
.
Примечание. Командлет Get-Member
очень помогает в выяснении того, какие свойства существуют у объекта:
gci . -include "*.sql" -recurse `
| select-string -pattern 'someInterestingString' `
| Get-Member
Вместо него можно также использовать псевдоним gm
.
Когда я делаю здесь я просто использую параметр -List - да, он отображает строку кода, но вы получаете только одну строку на файл (независимо от того, сколько совпадений):
PS> Get-ChildItem . -r *.cs | Select-String XmlNode -list
Commands\SnapinHelp\CmdletInfo.cs:27: public List<XmlNode> InputTypes;
Commands\SnapinHelp\GetSnapinHelpCommand.cs:124: WriteXmlNodeList(c...
Commands\SnapinHelp\ParameterInfo.cs:73: XmlNode FindNode(XmlDocument doc)
Commands\Xml\XmlCommandBase.cs:65: RegisterInputType<XmlNode>(Proce...
Если вам нужен путь:
PS> Get-ChildItem . -r *.cs | Select-String XmlNode -list |
Format-Table Path
Path
--------
C:\Users\Keith\Pscx\Src\PscxSnapin\Commands\SnapinHelp\CmdletInfo.cs
C:\Users\Keith\Pscx\Src\PscxSnapin\Commands\SnapinHelp\GetSnapinHelpCommand.cs
C:\Users\Keith\Pscx\Src\PscxSnapin\Commands\SnapinHelp\ParameterInfo.cs
C:\Users\Keith\Pscx\Src\PscxSnapin\Commands\Xml\XmlCommandBase.cs
Или если вы на самом деле нужно только имя файла:
PS> Get-ChildItem . -r *.cs | Select-String XmlNode -list |
Format-Table Filename
Filename
--------
CmdletInfo.cs
GetSnapinHelpCommand.cs
ParameterInfo.cs
XmlCommandBase.cs