Script de traitement par lots – Copie IF EXIST dans% erreur% localappdata

Je semble être coincé avec un script batch et je voudrais de l’aide.

Fondamentalement, je dois vérifier si un fichier existe dans un dossier dans %localappdata% et s’il écrase ensuite le fichier et si ce n’est pas le cas, placez-le dans un emplacement différent.

 IF EXIST "%localappdata%\foldername\filename" COPY /Y "filename" "location" ELSE COPY "filename" "location2" 

Mais lorsque cela fonctionne, je reçois une erreur de The syntax of the command is incorrect. Cela semble être dû à la variable %localappdata% utilisée.

Merci d’avance pour toute aide à ce sujet.

Vous devez mettre les deux commandes pour les twigs IF dans parens:

 IF EXIST "%localappdata%\foldername\filename" (COPY /Y "filename" "location") ELSE (COPY "filename" "location2") 

La raison en est que le shell doit pouvoir dire que si le fichier existe, la commande que vous souhaitez exécuter est la suivante:

 COPY /Y "filename" "location" 

et pas tout cela:

 COPY /Y "filename" "location" ELSE COPY "filename" "location2" 

Si vous y réfléchissez, tous ces éléments ELSE COPY peuvent très bien être des parameters légitimes pour la première COPY – le shell n’a aucun moyen de savoir à moins que vous aidiez.