54

多くのサーバーに対して PowerShell スクリプトを実行しており、出力をテキスト ファイルに記録しています。

スクリプトが現在実行されているサーバーをキャプチャしたいと思います。これまでのところ、私は持っています:

$file = "\\server\share\file.txt"
$computername = $env:computername

$computername | Add-Content -Path $file

この最後の行は、出力ファイルに疑問符を追加します。おっとっと。

PowerShell で変数をテキスト ファイルに出力するにはどうすればよいですか?

4

5 に答える 5

81

最も単純な Hello World の例...

$hello = "Hello World"
$hello | Out-File c:\debug.txt
于 2013-12-15T20:10:00.057 に答える
11

試行錯誤の末、分かったのは、

$computername = $env:computername

コンピューター名を取得するために機能しますが、Add-Content$computernameを介したファイルへの送信は機能しません。

私も試し$computername.Valueました。

代わりに、私が使用する場合

$computername = get-content env:computername

を使用してテキストファイルに送信できます

$computername | Out-File $file
于 2013-10-01T18:11:23.803 に答える
2

サンプルコードは問題ないようです。したがって、根本的な問題を何らかの方法で掘り下げる必要があります。スクリプトのタイプミスの可能性を排除しましょう。Set-Strictmode -Version 2.0まず、スクリプトの先頭に必ず入れてください。これは、スペルミスのある変数名を見つけるのに役立ちます。そのようです、

# Test.ps1
set-strictmode -version 2.0 # Comment this line and no error will be reported.
$foo = "bar"
set-content -path ./test.txt -value $fo # Error! Should be "$foo"

PS C:\temp> .\test.ps1
The variable '$fo' cannot be retrieved because it has not been set.
At C:\temp\test.ps1:3 char:40
+ set-content -path ./test.txt -value $fo <<<<
    + CategoryInfo          : InvalidOperation: (fo:Token) [], RuntimeException
    + FullyQualifiedErrorId : VariableIsUndefined

疑問符に関する次の部分は、Unicode に問題があるように思えます。Powershell でファイルを入力すると、次のように出力されます。

$file = "\\server\share\file.txt"
cat $file
于 2013-10-01T18:12:40.537 に答える
1

ここに簡単なものがあります:

$myVar > "c:\myfilepath\myfilename.myextension"

あなたも試すことができます:

Get-content "c:\someOtherPath\someOtherFile.myextension" > "c:\myfilepath\myfilename.myextension"
于 2020-06-10T19:03:03.840 に答える