5

Tee-Objectを使用して変数をファイル (minedown.conf) に入れるアプリケーションを作成しようとしていますが、ファイルに何かを追加しようとするたびに上書きされます。私は使用しています

$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

私はそれらのそれぞれを別の行にしようとしています。

4

3 に答える 3

14

余談ですが、PowerShell 3.0 では、Tee-Objectコマンドレットに -Append スイッチが追加されました。

于 2013-03-29T10:18:29.847 に答える
4

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」として機能することです (たとえば、パイプ シーケンスをデバッグするため)。

于 2013-03-29T04:10:19.037 に答える
1

前述のように、Tee-Object (別名tee) は、出力を 2 方向に分割するためのものです。Linux ( tee) では、画面とファイルに移動するのに便利です。PowerShellでは、画面に表示してパイプラインに戻すなどの目的がありますが、追加はできません。本当にあなたが望む方法ではありません。

ただし、Linux の方法で実行し、それを画面に表示し、ファイルに (追加モードで) 書き込む必要がありました。そのため、以下の方法を使用して最初にパイプラインに書き込み、次に画面に (色付きで) 配置し、上書きするのではなく、追加されるファイルに配置しました。多分それは誰かに役立つでしょう:

Write-Output "from - $from" | %{write-host $_ -ForegroundColor Blue; out-file -filepath c:\minedown\minedown.conf -inputobject $_ -append}
于 2013-05-10T16:27:59.897 に答える