我有一个 PowerShell 脚本,它根据文件的各种条件设置标志。为了简洁起见,我会缩写。
$path = "c:\path"
$srcfiles = Get-ChildItem $path -filter *.htm*
ForEach ($doc in $srcfiles) {
$s = $doc.Fullname
Write-Host "Processing :" $doc.FullName
if (stuff) {flag 1 = 1} else {flag 1 = 0}
if (stuff) {flag 1 = 1} else {flag 1 = 0}
if (stuff) {flag 1 = 1} else {flag 1 = 0}
$t = "$s;$flag1;$flag2;$flag2"
Write-Host "Output: " $t
这一切都很好。我的文件处理,标志设置正确,并生成一个整洁的分号分隔行作为 $t。但是,如果我在函数的末尾拍打这两行,
$stream = [System.IO.StreamWriter] "flags.txt"
$stream.WriteLine $t
我得到这个错误。
Unexpected token 't' in expression or statement.
At C:\CGC003a.ps1:53 char:25
+ $stream.WriteLine $t <<<<
+ CategoryInfo : ParserError: (t:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
如果我正在阅读这篇文章,它似乎在write-host
我的变量$t
到达WriteLine
. 不过,在我尝试之前out-file
,我想了解$t
Write-Host 之后发生了什么,这阻止Write Line
了它被视为有效。还是我还缺少其他东西?