Справочная информация: Здесь цель состоит в том, чтобы выполнить некоторые основные команды в powershell, используя select-string. По некоторым причинам, некоторые вещи работают не так, как ожидалось.
Допустим следующее:
$vfilter = 'c:/foo/bar/files/*.htm';
Select-String -path $vfilter -pattern ".*DOCTY.*" |
sort LineNumber |
where-object { $_.Filename -match "02" } |
format-list |
out-file c:/00junk.txt;
... где это вывод ...
IgnoreCase : True
LineNumber : 1
Line : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht
tp://www.w3.org/TR/html4/loose.dtd">
Filename : 02junk.htm
Path : C:\ ... \02junk.htm
Pattern : .*DOCTY.*
Context :
Matches : {<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h
ttp://www.w3.org/TR/html4/loose.dtd">}
Вопросы:
1) Как я могу предотвратить использование PowerShell для переноса текста "Line" и "Matches"
свойства. Так как это отправляется
текстовый файл, мне не важна ширина консоли и поэтому я не хочу никаких
произойдет перенос текста.
2) Предположим, я хочу сделать свой собственный вывод с многострочной строкой. В рубине
(например) я мог бы сделать это так:
custom_string = '';
items.each{|myitem|
custom_string += %Q[
### begin output ###
HereIs::LineNumber! --> #{myitem['LineNumber']}
HereIs::Path! --> #{myitem['Path']}
This is the actual line (below):
#{myitem['Line']}
]
}
custom_string.tofile('c:/00junk.txt');
Как мне заставить powershell сделать то же или подобное?
3) Как я могу сделать 2) выше с помощью PowerShell здесь-строки?