2013-03-29 47 views
5

我想創建一個應用程序,使用TEE對象將變量放入一個文件(minedown.conf),但每次它添加一些東西到它覆蓋它的文件。我正在使用Powershell TEE對象沒有覆蓋文件

$account = Read-Host "Enter your Account SID number" 
"account = $account" | Tee-Object -FilePath c:\minedown\minedown.conf 
$token = Read-Host "Enter your Authority Token" 
"token = $token" | Tee-Object -FilePath c:\minedown\minedown.conf 
$from = Read-Host "Enter your Twilio number" 
"from - $from" | Tee-Object -FilePath c:\minedown\minedown.conf 

我試圖讓每一個單獨的行。

回答

3

Tee-Object不是您正在查找的CmdLet,請嘗試Set-contentAdd-Content

$account = Read-Host "Enter your Account SID number" 
"account = $account" | Set-content -Path c:\minedown\minedown.conf 
$token = Read-Host "Enter your Authority Token" 
"token = $token" | Add-Content -Path c:\minedown\minedown.conf 
$from = Read-Host "Enter your Twilio number" 
"from - $from" | Add-Content -Path c:\minedown\minedown.conf 

Tee-Object目的是真的充當「T」,在一個管順序,以便從輸入的數據發送到輸出和到一個文件或一個變量(以調試一個管例如序列)。

+0

附加內容:參數無法找到匹配的參數名稱「文件路徑」。 在C:\ Users \ Zoey \ Desktop \ Minedown \ test.ps1:25 char:45 +「account = $ account」|附加內容-FilePath <<<<路徑C:\ minedown \ minedown.conf + CategoryInfo:InvalidArgument:(:) [添加-含量],ParameterBindingException + FullyQualifiedErrorId:NamedParameterNotFound,Microsoft.PowerShell.Commands.AddContentCommand –

+3

@zoeycluff正確的參數是'-path'。通過一點努力,你可以使用'get-help add-content -full'來發現它。 –

+0

謝謝@ C.B,我只是複製過去改變CmdLet的名字。 – JPBlanc

7

另外,在PowerShell 3.0中,-Append開關已添加到Tee-Object cmdlet中。

1

如前所述,Tee用於將輸出分成兩個方向。在Linux中,屏幕&文件很有用。在PowerShell中,它更多的是放在屏幕上並將其扔回管道以及其他東西,但不能執行Append。不是你想要的。

但是,我需要執行Linux方式,並將它顯示在屏幕上並寫入文件(以附加模式)。所以我用下面的方法先將它寫到管道上,然後把它放到屏幕上(用顏色),並把它放在一個被附加到的文件中,而不是被覆蓋。也許這將是有用的人:

Write-Output "from - $from" | %{write-host $_ -ForegroundColor Blue; out-file -filepath c:\minedown\minedown.conf -inputobject $_ -append}