我想添加换行符而不添加整个'nother行来执行此操作,这是我的代码:
"-- MANIFEST COUNT -- " >> "C:\psTest\test1.txt"
$manCount = (Get-ChildItem -filter "*manifest.csv").Count
$manCount + " `n" >> "C:\psTest\test1.txt"
我认为+ " `n"
会对计数进行换行,但它没有做任何事情。我也试过+ "`r`n"
(我在SO的其他地方发现了这个建议),但无济于事。
答案 0 :(得分:2)
让我补充一下your own solution的解释:
因为$manCount
,LHS属于[int]
,
$manCount + " `n"
实际上与:
相同$manCount + [int] " `n".Trim()
或:
$manCount + [int] ""
实际上与:
相同$manCount + 0
因此是无操作。
在PowerShell中,表达式的LHS类型通常为 [1] 如有必要,确定RHS将被强制使用的类型。
因此,通过将$manCount
投射到[string]
,+
然后按照您的意图执行字符串连接。
正如Matt在您对答案的评论中指出的那样,您还可以使用字符串插值:
"$manCount `n"
[1]有例外;例如,'3' - '1'
产生[int] 2
;即,PowerShell将两个操作数视为数字,因为运算符-
在字符串上下文中没有意义。
答案 1 :(得分:1)
整数需要转换为字符串才能进行连接:
"-- MANIFEST COUNT -- " >> "C:\psTest\test1.txt"
$manCount = (Get-ChildItem -filter "*manifest.csv").Count
[string]$manCount + "`r`n" >> "C:\psTest\test1.txt"