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-ID: 175311

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

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

Connor1980
Connor1980 26.10.2011 um 13:17:57 Uhr
Goto Top
Hi,

ich denke das müsste dir helfen.

Grüße
sanshotur
sanshotur 26.10.2011 um 14:05:28 Uhr
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
dog
dog 26.10.2011 um 16:48:42 Uhr
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."
sanshotur
sanshotur 26.10.2011 um 18:31:50 Uhr
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
Connor1980
Connor1980 26.10.2011 um 18:43:20 Uhr
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...
dog
dog 26.10.2011 um 18:44:52 Uhr
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...
sanshotur
sanshotur 27.10.2011 um 09:50:10 Uhr
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"