имя выходного файла, а не строка с select-строкой

Я рекомендую добавить следующую строку после экспорта в PDF:

ThisWorkbook.Sheets("Sheet1").Select

(где, например, Sheet1 - это единственный лист, который вы хотите активировать впоследствии)

Если оставить несколько листов в выбранном состоянии, могут возникнуть проблемы с выполнением некоторого кода. (например, unprotect не работает должным образом при активном выборе нескольких листов.)

22
задан Ralph Shillington 30 September 2009 в 17:32
поделиться

2 ответа

Я не думаю, что полностью понимаю, что вы пытаетесь сделать. Если вы хотите, чтобы выходные данные были сгруппированы по файлам, вы можете перенаправить в 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 .

41
ответ дан 29 November 2019 в 04:02
поделиться

Когда я делаю здесь я просто использую параметр -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
13
ответ дан 29 November 2019 в 04:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: