sanshotur
Goto Top

Powershell Variable ausgabe in Anfürungszeichen. WIe?

Hallo,
ich habe follgenden Powershell Skript
$vmname = "$args"  

new-item -type directory -path "d:\Logs\$vmname"  

$logfile = "D:\logs\$vmname\$vmname.log"  
$date = get-date


write-output "VM $vmname wurde hochgefahren $date" >> $logfile  

$pfad='"C:\Program Files\HyperVMgt\VMs-MG-Skripte\VM-Shutdown.ps1"'  
write-output "cmd /C ECHO . | powershell -f $pfad $vmname" | out-file -encoding ascii "d:\logs\$vmname\startvm.bat"  
Als Ausgabe schreibt er mir ein Batch Skript, dieser hat follgende Inhalt

cmd /C ECHO . | powershell -f "C:\Program Files\HyperVMgt\VMs-MG-Skripte\VM-Shutdown.ps1" test vm  

Mein Problem ist, dass der Parameter test vm keine Anfürungszeichen hat. Und das brauche ich damit die virtuelle maschine startet.

kann jemand bitte die write-output ausgabe so anpassen, dass die Ausgabe Anfürunszeichen hat?

Content-Key: 175311

Url: https://administrator.de/contentid/175311

Printed on: April 18, 2024 at 06:04 o'clock

Member: Connor1980
Connor1980 Oct 26, 2011 at 11:17:57 (UTC)
Goto Top
Hi,

ich denke das müsste dir helfen.

Grüße
Member: sanshotur
sanshotur Oct 26, 2011 at 12:05:28 (UTC)
Goto Top
danke für die Info, das habe ich auch schon gesehen. Ich habe anscheinend was ganz spezielles.

ich versuche in dieser Zeile
write-output "cmd /C ECHO . | powershell -f $pfad $vmname" | out-file -encoding ascii "d:\logs\$vmname\startvm.bat"

die fettmarkierte Variable mit Anfürungszeichen ausgeben
Member: dog
dog Oct 26, 2011 at 14:48:42 (UTC)
Goto Top
Gesehen, aber scheinbar nicht gelesen!?

   Sie können auch einen Satz in doppelten Anführungszeichen in 
      doppelte Anführungszeichen einschließen. Beispiel:

          "Wie sagt man so schön: ""Man lernt nie aus."""


      Dieser Befehl erzeugt folgende Ausgabe:

          Wie sagt man so schön: "Man lernt nie aus."
Member: sanshotur
sanshotur Oct 26, 2011 at 16:31:50 (UTC)
Goto Top
Doch, das habe ich auch gesehen, Das gilt für ein Text und ich möchte, dass die Ausgebe einer Variable in Anführungszeichen steht
Member: Connor1980
Connor1980 Oct 26, 2011 at 16:43:20 (UTC)
Goto Top
$var1="hans"  
write """$var1"" fährt nach haus" | out-file d:\pstest.txt  

d:\pstest.txt
"hans" fährt nach haus  

Grüße

EDIT: verhaspelt...
Member: dog
dog Oct 26, 2011 at 16:44:52 (UTC)
Goto Top
Hast du dir mal überlegt wo deine Variable drin steht?

Kleiner TIpp, falls es immer noch nicht klar ist: Ich habe dir die Stelle rausgesucht, weil das die Lösung ist und nicht weil ich wie du rumrate...
Member: sanshotur
sanshotur Oct 27, 2011 at 07:50:10 (UTC)
Goto Top
Und die Lösung war so einfach.
Danke sehr!!

Richtig:

write-output "cmd /C ECHO . | powershell -f $pfad ""$vmname""" | out-file -encoding ascii "d:\logs\$vmname\startvm.bat"