batch-Datei, um zu prüfen Existenz-Verzeichnis, wenn nicht vorhanden, dann verwenden, Alternatives Verzeichnis für die Datei kopieren
Bin ich zu schreiben versucht, eine batch-Datei, kopiert die exe-Datei von einem Speicherort im Netzwerk auf einen lokalen Speicherort. Es funktioniert derzeit aber je nach windows-version (xp oder win7) der Nutzer hat die richtigen auszuwählen .bat-Datei, die durch unterschiedliche lokale Pfade benötigt für die Kopie. (Sie gehen in den Autostart-Ordner ausgeführt werden jedes mal, wenn Benutzer startet die Maschine). Dies ist das erste mal, dass ich gearbeitet habe, mit dem schreiben von batch-Dateien, und bin völlig verloren, wenn man die syntax für if-Anweisungen. Wenn ich könnte etwas Hilfe herauszufinden dieses heraus, es wäre toll.
Hier ist, was ich derzeit habe, das funktioniert für XP:
REM @ECHO OFF
ECHO STARTING MOVEFILES
SET EXITRC=0
SET EXITMSG=EXITRC INITIALIZED
ECHO %EXITRC% -- %EXITMS
COPY "\\networkDrive\install\Individual\program\MOVEFILES.EXE" "C:\DOCUMENTS AND SETTINGS\ALL USERS\START MENU\PROGRAMS\STARTUP\"
ECHO COPIED FILES TO YOUR PC
SET EXITRC=%ERRORLEVEL%
IF NOT %EXITRC% == 0 GOTO :EXIT
SET EXITMSG=PROCESSING COMPLETE
:EXIT
ECHO STEP: %EXITMSG% RC: %EXITRC%
ECHO FINISHING MOVEFILES
PAUSE
EXIT %EXITRC%
Hier ist was ich habe für Windows 7:
@ECHO OFF
ECHO STARTING MOVEFILESWIN7
SET EXITRC=0
SET EXITMSG=EXITRC INITIALIZED
ECHO %EXITRC% -- %EXITMS
COPY "\\networkDrive\install\Individual\program\MOVEFILES.exe" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
ECHO COPIED MOVEFILESWIN7 TO YOUR PC - All Users /Public Startup folder
SET EXITRC=%ERRORLEVEL%
IF NOT %EXITRC% == 0 GOTO :EXIT
SET EXITMSG=PROCESSING COMPLETE
:EXIT
ECHO STEP: %EXITMSG% RC: %EXITRC%
ECHO FINISHING MOVEFILESWIN7
PAUSE
EXIT %EXITRC%
Möchte ich nur eine batch-Datei für beide Szenarien gibt es also keine Verwirrung der Benutzer auf die batch-Datei ausgeführt werden.
NOT
.gut zu wissen!! Danke! Ich werde zu ändern, dass in meinem code jetzt. Ich bin immer noch versuchen, herauszufinden, wie man die copy-Anweisungen innerhalb einer if-Anweisung. Zum Beispiel: WENN (win7 Verzeichnis existiert) zu kopieren win7 Verzeichnis; else Kopie der XP-Verzeichnis. Oder etwas entlang jenen Linien.
Warum wird dieser immer nach unten-gewählt? Wenn Sie diese Frage hilfreich Bitte Bis-Abstimmung die Frage aber nicht nach Unten Stimmen, ohne einen Kommentar oder eine Anregung zur Verbesserung. Das ist nonconstructive.
InformationsquelleAutor SteveAnselment | 2013-07-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutzen Sie die Umgebungsvariable
%ALLUSERSPROFILE%
.Unter WinXP der Standard ist C:\Documents und Einstellungen\All Users
Auf Win7/2008 der Standardwert ist C:\ProgramData
Gibt es eine Tabelle gibt es hier: http://ss64.com/nt/syntax-variables.html
Sehe ich Sie auch kopieren eine andere Datei. Nicht sicher, warum Sie das tun. Vielleicht könnten Sie erkennen, mit einer Methode, hier: https://stackoverflow.com/a/2788764/1553090 -- Sonst vielleicht sollten Sie die Vorteile der
%ProgramFiles%
und%ProgramFiles(x86)%
Variablen.Nur zu erarbeiten, wie Sie können wählen, um diese Variablen verwenden... testen kann Man die Win7 Autostart-Ordner auf Existenz, und wenn es nicht da ist nur fallback auf die XP (unabhängig davon, ob es existiert).
Auch das %ALLUSERSPROFILE% nicht mir helfen. Der Pfad der Datei, nachdem es noch verschiedene zu erhalten, um den Start-Ordner.
Es sollte helfen, brauchen Sie nur einen extra-push. Ich bearbeitet meine Antwort zu zeigen, einen Weg, dass Sie es verwenden können. Sie tun können Variationen zu diesem Thema, je nachdem wie pedantisch Sie wollen. =)
InformationsquelleAutor paddy