2009-02-03 4 views
6

Ich vermisse etwas (offensichtlich?) Über das Entkommen meiner Zeichenfolgen oder Leerzeichen in dem folgenden Windows Server 2k3-Stapelbefehl.Wie kann FORFILES angewiesen werden, Befehl auf Pfad auszuführen?

FORFILES -m *.wsp -c "CMD /C C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^ -o^ addsolution^ -filename^ @FILE" 

Ergebnisse in der folgenden Fehler

‚C: \ Programme \ Gemeinsame Dateien \ Microsoft Shared \ Web Server Extensions \ 12 \ bin \ stsadm.exe -o addsolution -filename„foobar. wsp "'wird nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt.

Aber ich kann nicht herausfinden, warum. Ich arbeite aus Mr. Simon Sheppard's fine documentation

Antwort

9

Der Pfad muss zitiert werden, und das Zitat muss maskiert werden.

FORFILES -m *.wsp -c "CMD /C ^0x22C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^0x22 -o^ addsolution^ -filename^ @FILE" 

Ein Mitarbeiter schlug vor, die hex für“verwenden, und ich schließlich herausgefunden, dass die hex Flucht nötig.

+0

Danke, Sie haben mich gerettet. – guanome

2

Eine andere mögliche Antwort, die alten 8.3-Namen zu verwenden, ist, dass Sie dir/X erhalten, indem Sie .

Wie: C: \ PROGRA ~ 1 anstelle von C: \ Programme