Windows Cmd: Probleme mit für / f mit einem Befehl in Anführungszeichen mit Parametern in Anführungszeichen

for /f "delims=" %%a in ('"%systemRoot%\system32\find.exe" /?') do @echo %%a

Ja, die vorherige Zeile funktioniert. Nicht sehr nützlich, aber funktioniert. Aber als ich versuchte, eine Batch-Datei zu schreiben, um eine andere Frage zu beantworten, sah ich mich so etwas wie konfrontiert

 for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" ^< "c:\something.txt"') do @echo %%a
 for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v ""    "c:\something.txt"') do @echo %%a

Beide vorherigen Zeilen kehren zurückThe filename, directory name, or volume label syntax is incorrect

 for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" ^< c:\something.txt'  ) do @echo %%a
 for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v ""    c:\something.txt'  ) do @echo %%a

Beide vorherigen Zeilen kehren zurückThe system cannot find the file specified

Ich war nicht in der Lage, es zum Laufen zu bringen, weder die Anführungszeichen zu formen, noch sie zu verdoppeln, mit Backslashes zu beginnen, zu einfachen Anführungszeichen zu Backquotes zu wechseln und die entsprechende Option in zu setzenfor Befehl, alle Kombinationen, die ich ausprobiert habe, sind fehlgeschlagen.

Wenn der auszuführende Befehl in Anführungszeichen gesetzt ist und Argumente in Anführungszeichen enthält, schlägt er fehl.

Und ja, ich kenne die Anführungszeichen derfind werden nicht benötigt, und wenn sie entfernt werden, funktionieren alle vorherigen vier Zeilen (ignoriert die Ausgabe, Trennzeichen, Token)

Aber für den Fall, dass die Anführungszeichen, die den Befehl umgeben, wirklich benötigt werden (und ich kenne Systeme, in denen8dot3name Verhalten ist deaktiviert), gibt es eine Möglichkeit, es zum Laufen zu bringen? Was vermisse ich hier?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage