Copier un fichier (en position relative) avec .bat

Résolu/Fermé
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015 - 7 avril 2015 à 21:32
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015 - 27 avril 2015 à 19:45
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 !
A voir également:

8 réponses

djdakta Messages postés 752 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 8 mars 2020 163
8 avril 2015 à 01:59
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
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015
8 avril 2015 à 11:48
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
0
djdakta Messages postés 752 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 8 mars 2020 163
8 avril 2015 à 11:52
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? ;-)
0
djdakta Messages postés 752 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 8 mars 2020 163
8 avril 2015 à 12:42
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

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015
8 avril 2015 à 22:18
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!
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131
Modifié par Pierrecastor le 8/04/2015 à 22:29
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-
0
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015
8 avril 2015 à 22:50
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 !
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131 > Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015
8 avril 2015 à 22:57
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.
0
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015
9 avril 2015 à 20:29
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 ?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 avril 2015 à 08:22
/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.
0
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015
10 avril 2015 à 21:51
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é
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 avril 2015 à 09:37
hello
Voici mon dossier du jeu:
Minecraft2D\Maps\niveaux.lvl
à copier dans
Minecraft2D\niveaux.lvl

copy fichier ..\..\niveaux.lvl
0
Azep65 Messages postés 10 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 27 avril 2015
27 avril 2015 à 19:45
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 ...
0