2016-10-03 5 views
2

引用符を含むテキスト間に変数を持つバッチファイルを作成するPowerShellファイルを作成しています。write-output - テキスト引用符間の非線形変数

私が何を意味するのか理解できるように、スクリプトを以下に見てください。その後、次のようになります。スクリプトedittextdone.batを実行

$addnewcomputerhere = Read-Host -Prompt 'Input new computername' 
$addnewusernamehere = Read-Host -Prompt 'Input new username' 
Write-Output 'powershell -Command "(gc sourcechangeme.txt) -replace ''newcomputername'', '''$addnewcomputerhere'''| Out-File source1changeme.txt"' | Add-Content edittextdone.bat 
Write-Output 'powershell -Command "(gc sourcechangeme.txt) -replace ''newusername'', '''$addnewusernamehere'''| Out-File source1changeme.txt"' | Add-Content edittextdone.bat 

代わりに、それはこのようになっていることの
powershell -Command "(gc sourcechangeme.txt) -replace 'newcomputername', 'thecomputernamethathasbeengivenonprompt'| Out-File source1changeme.txt" 
powershell -Command "(gc sourcechangeme.txt) -replace 'newusername', 'theusernamethathasbeengivenonprompt'| Out-File source1changeme.txt" 

powershell -Command "(gc sourcechangeme.txt) -replace 'newcomputername', ' 
thecomputernamethathasbeengivenonprompt'| Out-File source1changeme.txt" 
powershell -Command "(gc sourcechangeme.txt) -replace 'newusername', ' 
theusernamethathasbeengivenonprompt'| Out-File source1changeme.txt" 

私の問題は、変数が新しい行を開始することです。

アドバイスを探していて、thisに運がありませんでした。

私も-NoNewlineについて読んだことがありますが、正しく使用する方法を理解できませんでした。

+0

だから、再びPowerShellを実行するバッチファイルを作成するために、PowerShellを実行していますか?あまりにもその点を理解していない。この質問は実際にバッチファイルのコードがないので、バッチファイルタグを削除します。 – Squashman

答えて

1

暗黙の文字列連結に依存しないでください。あなたの出力文字列に値を挿入するためのformat operator-f)を使用します。

'powershell -Command "(gc sourcechangeme.txt) -replace ''newcomputername'', ''{0}''| Out-File source1changeme.txt"' -f $addnewcomputerhere | Add-Content edittextdone.bat 
'powershell -Command "(gc sourcechangeme.txt) -replace ''newusername'', ''{0}''| Out-File source1changeme.txt"' -f $addnewusernamehere | Add-Content edittextdone.bat 
+0

これは良い考えですが、これはうまくいきませんでした。 (」| "アウト・ファイルsource1changeme.txt(GCのsourcechangeme.txt)-replace 'newcomputername'、 '{0}'" -f userinputdata PowerShellを-Command のPowerShell - コマンド:私は、次の結果を持っています私は、変数の直後に-f演算子を移動しようとしましたが、それでも変わりません。 。第2行目では-f、第3行目ではuserinputdataを使って2行目をさらに2行にブレーキします。 –

+0

@AndorArmosジェネレータスクリプトから 'Write-Output'を削除しませんでした。 'Write-Output'を使い続けたい場合は、' Write-Output( '...' -f $ var) ' –

+0

Ansgar、 ありがとうございます。 –

関連する問題