batch-file - setzen - cmd set environment variable



Legen Sie eine Pfadvariable mit Leerzeichen im Pfad in einer Windows-CMD-Datei oder-Batchdatei fest (6)

Der richtige Weg, dies zu tun, ist so:

@ECHO off
SET MY_PATH=M:\Dir\^
With Spaces\Sub Folder^
\Dir\Folder
:: calls M:\Dir\With Spaces\Sub Folder\Dir\Folder\hello.bat
CALL "%MY_PATH%\hello.bat"
pause

https://src-bin.com

Ich bin neu im Drehbuchschreiben und kann dieses nicht zur Arbeit bringen. Ich könnte, wenn ich die Dateien auf einen Pfad ohne Leerzeichen verschieben würde, aber ich würde es gerne mit dem Platz arbeiten, wenn es könnte.

Ich möchte eine Reihe von Office-Updates in einen Ordner mit einer .cmd-Datei extrahieren. Um die Batch-Datei auf jedem Computer nutzbar zu machen, setze ich eine Pfadvariable, die ich nur an einem Ort ändern muss, um sie auf einem anderen Rechner auszuführen. Das Problem ist, dass der Pfad ein Leerzeichen enthält. Wenn ich den Pfad in der Definition in Anführungszeichen setze, legt cmd.exe sie um den Pfad herum, bevor er den Dateinamen und die Schalter anfügt, und der Stapel schlägt mit "Befehlszeilensyntaxfehler" fehl. Ohne Anführungszeichen schlägt es fehl, "wird nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt."

Zum Testen verwende ich den Hilfeschalter, bis oder wenn ich es funktioniere. Ich kann das mit einem 8.3 Datei / Ordnernamen machen (zB My Documents als MyDocu ~ 1), aber kann das auch anders gemacht werden?


Answer #1

Die einfachste Möglichkeit, dieses Problem zu beheben, besteht darin, den Ordnernamen in Anführungszeichen zu setzen:

(cd\New Folder\...) --> (cd\"New Folder"\...)

Hofft, das hilft.


Answer #2

Ich lege den Pfad immer in Anführungszeichen, wenn ich eine .bat-Datei erstelle. (Ich habe gerade die PAUSE hinzugefügt, so dass der Bildschirm nicht geschlossen wird.)

Beispielsweise:

"C:\Program Files\PageTech\PCLReader64_131\PCLReader64.exe"
PAUSE

Answer #3

Versuche dies;

  1. Erstellen Sie eine Variable wie folgt

    SET "SolutionDir=C:\Test projects\Automation tests\bin\Debug"**
    
  2. Ersetzen Sie dann den Pfad durch die Variable. Stellen Sie sicher, dass Sie Anführungszeichen für Starts und Ends hinzufügen

    vstest.console.exe "%SolutionDir%\Automation.Specs.dll"
    

Answer #4

Wenn Sie einen permanenten Pfad speichern müssen (der Pfad wird nicht geändert, wenn Cmd neu gestartet wird)

  1. Führen Sie die Eingabeaufforderung als Administrator aus (Klicken Sie mit der rechten Maustaste auf cmd.exe, und wählen Sie Als Administrator ausführen aus).

  2. setx path "%path%;your new path" in setx path "%path%;your new path" ein

  3. Überprüfen Sie, ob der Pfad korrekt ist, indem Sie Pfad eingeben und die Eingabetaste drücken


Answer #5

ich benutze

set "VAR_NAME=<String With Spaces>"

beim Aktualisieren des Pfads:

set "PATH=%UTIL_DIR%;%PATH%"




space