Ich schreibe gerade eine .bat-Batch-Datei, die eine Installationsdatei ausführt. Bevor die Installationsdatei ausgeführt wird, prüfe ich, ob das Verzeichnis existiert, um eine Neuinstallation der Anwendung zu vermeiden.
Dazu verwende ich die Anweisung If Not Exist filename
. Wenn die installierte Datei nicht existiert, führe ich die Installationsdatei aus.
Aus irgendeinem Grund versucht das Programm, wenn ich es mit der bereits installierten Anwendung teste, die Anwendung erneut zu installieren.
Hier ist ein Ausschnitt aus meinem Code:
cd "C:\Documents and Settings\John\Start Menu\Programs\"
pause
If NOT exist "Software Folder"\ (
start \\filer\repo\lab\"software"\"myapp"\setup.exe
pause
)
Wobei SoftwareFolder
ein Unterverzeichnis von "C:\Dokumente und Einstellungen\John\Start Menu\Programme\" ist, prüfe ich, ob es in meinem
Programme`-Ordner existiert.
Ich weiß, dass mit meinem "Start"-Befehl alles in Ordnung ist. Ich habe das Gefühl, dass etwas mit dem Befehl CD
oder einem seiner Parameter nicht stimmt.
Vielen Dank, Leute!
Mir sind dabei einige Probleme aufgefallen, die für jemanden, der gerade erst anfängt oder ein unerfahrener Benutzer ist, von Nutzen sein könnten. Erstens...
CD /D "C:\Documents and Settings\%username%\Start Menu\Programs\"
zwei Dinge, erstens kann ein /D nach der CD nützlich sein, um sicherzustellen, dass das Verzeichnis geändert wird, aber es ist nicht wirklich notwendig, zweitens, wenn Sie dies von Benutzer zu Benutzer weitergeben wollen, müssen Sie anstelle Ihres Namens den Code %username% hinzufügen, dies macht den Code auf jedem Computer verwendbar, solange sich die Datei setup.exe am selben Ort wie auf Ihrem Computer befindet. natürlich ist es schwieriger, dies sicherzustellen. Außerdem...
start \\filer\repo\lab\"software"\"myapp"\setup.exe
der Startcode hier, kann so eingerichtet werden, aber die korrekte Syntax ist
start "\\filter\repo\lab\software\myapp\" setup.exe
Dies führt aus: setup.exe, zu finden in: \filter\repo\lab...etc.\
Wie in der Antwort von Escobar Ceaser, schlage ich vor, Anführungszeichen um den gesamten Pfad zu verwenden. Es ist üblich, den gesamten Pfad in "" zu verpacken, nicht nur einzelne Verzeichnisnamen innerhalb des Pfades.
Ich hatte ein ähnliches Problem, dass es bei mir nicht funktionierte. Aber es war keine Option, "" innerhalb des Pfades für einzelne Verzeichnisnamen zu verwenden, weil der Pfad Umgebungsvariablen enthielt, die selbst mehr als eine Verzeichnishierarchie abdecken. Die Schlussfolgerung war, dass ich das Leerzeichen zwischen dem abschließenden " und dem (
Die korrekte Version, mit dem Leerzeichen vor der Klammer, würde lauten
If NOT exist "C:\Documents and Settings\John\Start Menu\Programs\Software Folder" (
start "\\filer\repo\lab\software\myapp\setup.exe"
pause
)