Seite 1 von 2

[Frage] Verschachtelte Quotes in WinBatch

Verfasst: 06 Sep 2017, 13:47
von jnko
Wahrscheinlich ist das gaaanz einfach, ich finde jedoch leider auch nach intensiver Suche keine Lösung...

Ich muss in einer WinBatch-Sektion ein Programm aufrufen, welches verschtelte Double-Quotes benötigt.

z.B.

Code: Alles auswählen

[WinBatch_test]
"%CurrentProfileDir\dir\program.exe" "param1 "Path with spaces\dir" "param2 param3 param4"
Der zweite Parameter muss also komplett mit den enthaltenen Quotes übergeben werden.

Code: Alles auswählen

"param1 "Path with spaces\dir" "param2 param3 param4""

Hat da vllt jemand eine Idee? Ich habe gerade ein paar Dicke Balken vor dem Kopf...

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 06 Sep 2017, 14:10
von panisch
Ich kanns gerade leider nicht testen, aber schon mal einfach " außenrum probiert?

Code: Alles auswählen

""param1 "Path with spaces\dir" "param2 param3 param4""

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 06 Sep 2017, 14:19
von jnko
Ja, klappt leider nicht...

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 06 Sep 2017, 15:00
von andré
In dem Fall sollten einfache Anführungszeichen (die oberhalb der Raute) funktionieren. Also so:

Code: Alles auswählen

'%CurrentProfileDir\dir\program.exe' '"param1 "Path with spaces\dir" "param2 param3 param4"'
Ich glaube, ich habe das in irgendeinem Paket bei auch schon anwenden müssen. Wenn das so nicht klappen sollte, muss ich das mal raussuchen.

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 06 Sep 2017, 15:09
von uncle_scrooge
Je nachdem von welcher Seite man das betrachtet, ist entweder ein double quote zuviel, oder eins zuwenig.
Du hast drei 'öffnende' und zwei 'schließende'.

Der Pfad mit Räumen drin ist eigenständig? Oder gehört er zu param1 als Wert?

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 06 Sep 2017, 15:25
von jnko
uncle_scrooge hat geschrieben:Je nachdem von welcher Seite man das betrachtet, ist entweder ein double quote zuviel, oder eins zuwenig.
Du hast drei 'öffnende' und zwei 'schließende'.
Stimmt, das letzte schließende fehlte. Ist korrigiert.
uncle_scrooge hat geschrieben: Der Pfad mit Räumen drin ist eigenständig? Oder gehört er zu param1 als Wert?
Der gehört zu param1.

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 06 Sep 2017, 15:53
von uncle_scrooge
Nächste (blöde) Frage.
Warum nicht so?
"%CurrentProfileDir\dir\program.exe" param1 "Path with spaces\dir" param2 param3 param4

Variante von André mit den single quotes schon probiert?

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 07 Sep 2017, 08:10
von jnko
uncle_scrooge hat geschrieben:Nächste (blöde) Frage.
Warum nicht so?
"%CurrentProfileDir\dir\program.exe" param1 "Path with spaces\dir" param2 param3 param4
Will leider nicht, da fehlt noch etwas. Siehe unten.
uncle_scrooge hat geschrieben: Variante von André mit den single quotes schon probiert?
Ja, klappt auch nicht.


Ich versuche mal das ganze aufzudröseln...

Also: Ich habe einen Userlogonscript, welches bei jeder Anmeldung einige Daten auf den Client kopiert, und erst nach einigen Minuten mit einem WinBatch-Aufruf mit den Daten weiter arbeiten soll.
Das ginge z.B.

Code: Alles auswählen

[Actions]
StayOnTop = false
IconizeWinst  ;IconizeWinst will nicht im Userlogon-Script

Files_Copy_CopyStuff
SleepSeconds 240
Winbatch_SetWindows10Settings /RunAsLoggedOnUser /LetThemGo /SysNative

[Files_Copy_CopyStuff]
copy -s "%ScriptPath%\W10data\*.*" "%CurrentProfileDir%\W10data"

[Winbatch_SetWindows10Settings]
"%CurrentProfileDir%\W10Settings\W10Settings.exe" "/s 2 /config "%CurrentProfileDir%\W10Settings\W10Settings.ini"
Dabei bleibt aber dieses leicht nervige kleine Opsi-Fenster unten rechts in der Ecke so lange, wie das Script läuft, also lange. Nun kann ich zwar Opsi-Winst mit dem /silent Switch ruhig stellen, dann sehe ich aber gar nichts mehr.
Im Prinzip möchte ich es gerne so haben, dass ich nur das Userlogon-Script komplett Silent haben möchte, dann darf ich aber kein SleepSeconds verwenden.
Meine Idee war, dass wenn ich das WinBatch mit /LetThemGo aufrufe, diese ja im Hintergrund läuft und folglich das Opsi-Fenster geschlossen wird.
Daher habe ich schnell einen kleinen Wrapper geschrieben, der von WinBatch aufgerufen wird, wartet und danach das eigentliche Programm startet.

Dann sähe (wenn es denn funktionieren würde die WinBatch-Sektion so aus:
WaitRun wird über Winbatch gestartet, wartet 240 Sekunden und ruft dann W10Settings.exe mit Parametern auf.

Code: Alles auswählen

[Winbatch_SetWindows10Privacy]
"%CurrentProfileDir%\W10Privacy\WaitRun.exe"  '240 "%CurrentProfileDir%\W10Settings\W10Settings.exe" "/s 2 /config "%CurrentProfileDir%\W10Privacy\W10Settings.ini"'
Und da hakt es leider...


Nur gut, dass ich mich nicht auch noch auf meinen AP mit W10 rumärgern muss... Das ist schlimmer als Pest und Cholera zusammen. Und erst diese andauernde Bevormundung...

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 07 Sep 2017, 16:37
von SisterOfMercy
jnko hat geschrieben:

Code: Alles auswählen

[Winbatch_SetWindows10Settings]
"%CurrentProfileDir%\W10Settings\W10Settings.exe" "/s 2 /config "%CurrentProfileDir%\W10Settings\W10Settings.ini"
That is still not looking good. Where's the documentation for this program?
"%CurrentProfileDir%\W10Settings\W10Settings.exe" "/s 2 /config "%CurrentProfileDir%\W10Settings\W10Settings.ini""
Just with one extra quote on the end?
jnko hat geschrieben:Nur gut, dass ich mich nicht auch noch auf meinen AP mit W10 rumärgern muss... Das ist schlimmer als Pest und Cholera zusammen. Und erst diese andauernde Bevormundung...
:lol: :lol:

Re: [Frage] Verschachtelte Quotes in WinBatch

Verfasst: 18 Sep 2017, 10:17
von jnko
SisterOfMercy hat geschrieben: That is still not looking good. Where's the documentation for this program?
"%CurrentProfileDir%\W10Settings\W10Settings.exe" "/s 2 /config "%CurrentProfileDir%\W10Settings\W10Settings.ini""
Just with one extra quote on the end?
I'm trying to run a Windows-Program with two options within a WINBATCH section which itself runs another programm given in Arg2 with its own options.

Exmaple

Code: Alles auswählen

[Winbatch_RUN]
"prog1.exe prog1Arg1 "prog1Arg2" "

Code: Alles auswählen

[Winbatch_RUN]
"c:\Path with Spaces\prog1.exe 243 "c:\Path with Spaces\prog2.exe prog2Arg1 "c:\Path with Spaces\prog2Arg2" ... prog2ArgN" "

That's why I need nested quotes.