Copier un fichier (en position relative) avec .bat [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015
-
Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015
-
Bonsoir, je voudrais copier un (ou des) fichier à l'aide d'une commande en .bat
Mon problème est que ce .bat doit être dans un dossier d'un jeu et que donc le chemin n'est pas fixe. Est-il vraiment possible de faire cela ou il est obligatoire d'avoir le chemin complet ?

Voici mon dossier du jeu:
Minecraft2D\Maps\niveaux.lvl
à copier dans
Minecraft2D\niveaux.lvl

Dans l'attente de toute réponse, merci a tous !

8 réponses

Messages postés
752
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
8 mars 2020
139
Bonjour,

L'idéal serait d'avoir le chemin complet.
Voici le contenu du .bat

@ECHO OFF
xcopy X:\Minecraft2D\Maps\niveaux.lvl Y:\Minecraft2D\niveaux.lvl /m /e /y

/m = copie uniquement les fichiers màj
/e = copie tous les sous-dossiers
/y = demande confirmation avant d'écraser

Si il y a des espaces dans les noms de dossiers/fichiers, il faut utiliser ""

xcopy "c:\source jeu" "x:\destination jeu" /m /e /y

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015

Ok merci pour les infos complémentaires !
Merci djdakta, sa marche bien mais je ne peut pas déplacer le dossier du Jeu.
Pensez vous que c'est possible ?
Je pensais sinon coder en C une appli pour créer et copier le contenu des fichiers.
L'avantage c'est que le chemin peut se faire à partir de la position du .exe mais c'est assez long à coder..
J'essais tout sa et je vous redis, merci pour votre aide
Messages postés
752
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
8 mars 2020
139
Euhm... Le dossier du jeu, tu veux le copier ailleurs, ou tu veux tout simplement le déplacer?
Peut-être une bête question, mais pourquoi tu tiens tellement à ce que ce dossier soit copié/déplacé ?
Il est pas bien là où il est? ;-)
Messages postés
752
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
8 mars 2020
139
Essaye ceci:

Pour déplacer un dossier ou un/des fichier(s):

MOVE [drive:] [chemin]nomdufichier destination

Pour renomer un dossier:

MOVE [drive:] [chemin]nomdudossier1 nomdudossier2

Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015

Merci mais sa ne résout pas vraiment mon problème:
En gros le Jeu utilise et modifie les fichiers, je cherche donc a faire un système de réinitialisation.
Des fichiers sont placés dans un dossier (mère), ils servent d'originaux (et ne seront jamais modifier) . Puis dans un autre dossier il y a les fichiers modifier par le jeu (dossier fille). Le .bat doit COPIER les fichiers mères dans le dossier fille pour remplacer et mettre à l'état original les ficher. Remise a Zero (mais pas fichiers vierges).
J'espère que cette explication est plus précise.
Pour l'instant sa marche mais je ne peut pas déplacer le jeu, le chemin complet change.
Il est peut être impossible de faire cela avec un .bat, je cherche a faire cela en C, je sais que c'est possible mais il faut le temps que je commence.
Je te redis sa au plus vite, merci à toi!
Messages postés
38189
Date d'inscription
mercredi 5 novembre 2003
Statut
Modérateur
Dernière intervention
16 avril 2021
3 752
Salut

Une piste ici :

https://stackoverflow.com/questions/14936625/relative-path-in-bat-script

https://www.developpez.net/forums/d1504346/general-developpement/programmation-systeme/windows/scripts-batch/chemin-relatif-absolu/

Allumez un feu pour quelqu'un et il sera au chaud pour le reste de la journée. Mettez à feu un homme et il sera au chaud pour le restant de sa vie.
-Terry Pratchett-
Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015

Sa marche a première vue, merci ton lien est très interessant, je teste sa entièrement demain et je poste le code.
Merci beaucoup, mon problème se résout !
Messages postés
38189
Date d'inscription
mercredi 5 novembre 2003
Statut
Modérateur
Dernière intervention
16 avril 2021
3 752 >
Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015

j'ai juste tapé "lien relatif batch" dans un moteur de recherche, mais de rien. ;-)

Faut dire que je savais que c'était faisable facilement en bash (console linux), je me suis dis que ça devais être faisable en batch, même si batch est à 100000 lieux des possibilités offertes par bash.
Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015

Donc sa marche, mais a chaque fichier il me demande si c'est un dossier ou un fichier, il faut donc taper "F" a chaque fois et c'est pas du tout pratique..
Une idée ?
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 253
/i
Si le paramètre Source correspond à un répertoire ou qu'il contient des caractères génériques et que le paramètre Destination n'est pas spécifié, la commande xcopy suppose que le nom du répertoire de destination est destination et un nouveau répertoire est donc créé. Tous les fichiers sont ensuite copiés dans ce nouveau répertoire. Par défaut, la commande xcopy demande à l'utilisateur si la destination est un fichier ou un répertoire.
Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015

Ok d'ac donc c'est incontournable..
Au final je pense que ce ne sera jamais parfais avec un .bat (aspect effrayant de la console, antivirus..) ce n'ai surement pas adapté
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 253
hello
Voici mon dossier du jeu:
Minecraft2D\Maps\niveaux.lvl
à copier dans
Minecraft2D\niveaux.lvl

copy fichier ..\..\niveaux.lvl
Messages postés
10
Date d'inscription
mardi 7 avril 2015
Statut
Membre
Dernière intervention
27 avril 2015

Résolu, programme spécial codé en C, sa marche parfaitement.
Le batch est bien mais il possède des défauts, notamment avec les antivirus ...