fichier de commandes pour vérifier l'existence d'un répertoire s'il n'existe pas alors utiliser une autre répertoire pour la copie de fichier
Je suis en train d'écrire un fichier de commandes qui copie un fichier exe à partir d'un emplacement réseau à un emplacement local. Il travaille actuellement mais selon la version de windows (xp ou win7) l'utilisateur doit sélectionner le bon .fichier bat en raison de différents chemins locaux nécessaires pour la copie. (ils vont le dossier de démarrage pour être exécuté à chaque fois que l'utilisateur démarre la machine). C'est la première fois que j'ai jamais travaillé avec l'écriture des fichiers batch et je suis complètement perdu lorsque l'on regarde la syntaxe de if. Si je pouvais obtenir de l'aide essayant de se faire il serait grand.
Voici ce que j'ai actuellement qui fonctionne pour 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%
Voici ce que j'ai pour 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%
Je voudrais avoir un seul fichier batch qui va couvrir les deux scénarios, donc il n'y a pas de confusion pour l'utilisateur sur lequel fichier de commandes à exécuter.
NOT
.bon à savoir!! Merci! Je vais changer ça dans mon code maintenant. Je suis encore à essayer de comprendre comment mettre de la copie des déclarations à l'intérieur d'une instruction if. Par exemple: SI (win7 répertoire existe) copie de win7 répertoire; d'autre copie de XP répertoire. Ou quelque chose le long de ces lignes.
Pourquoi est-ce passer a voté? Si vous trouvez cette question utile, Veuillez-Vote de la question, mais ne pas voter sans en laissant un commentaire ou une suggestion d'amélioration. C'est nonconstructive.
OriginalL'auteur SteveAnselment | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la variable d'environnement
%ALLUSERSPROFILE%
.Sur WinXP la valeur par défaut est C:\Documents and Settings\All Users
Sur Win7/2008 la valeur par défaut est C:\ProgramData
Il y a une table disponible ici: http://ss64.com/nt/syntax-variables.html
Je vois que vous aussi copier un fichier différent. Pas sûr de savoir pourquoi vous le faites. Peut-être que vous pourriez détecter à l'aide d'une méthode ici: https://stackoverflow.com/a/2788764/1553090, Sinon peut-être vous devriez prendre avantage de la
%ProgramFiles%
et%ProgramFiles(x86)%
variables.Juste pour des précisions sur la façon dont vous pourriez choisir d'utiliser ces variables... Vous pouvez tester le Win7 dossier de démarrage pour l'existence, et si elle n'est pas là juste de secours pour l'XP (indépendamment de savoir si elle existe).
Aussi le dossier %ALLUSERSPROFILE% ne marche pas aider moi. Le chemin d'accès du fichier après c'est encore différent pour obtenir le dossier de démarrage.
Il doit aider, vous avez juste besoin d'un coup de pouce supplémentaire. J'ai édité ma réponse à montrer une façon que vous pouvez utiliser. Vous pouvez faire des variations sur ce thème, en fonction de la façon pédante vous voulez être. =)
OriginalL'auteur paddy