Rename a file onto a Specific Path [DOS] [Fermé]

Messages postés
98
Date d'inscription
dimanche 22 janvier 2006
Statut
Membre
Dernière intervention
18 novembre 2015
-
Hello,
J'essaie d'exécuter les operations suivantes dans un dossier spécifique:
1- Renommer le fichier en supprimant les Espaces
2- Renommer le fichier en remplaçant les tirets "-" par underscore"_"
3- Deplacer le fichiers vers un autre dossier

voilà ce que j'essaie:

rem 1- Suppression des espaces dans le nom des fichiers
@echo off
setlocal enableextensions enabledelayedexpansion

for /r "D:\Dir1\Dir2\Dir3" %%f in (*.edi) do (
set ARG=%%~nxf
rename "%%f" !ARG: =!
)


rem 2 - replace tiret
for /r "D:\Dir1\Dir2\Dir3" %%f in (*-*.edi)
do call :ProcessFile %%f
goto :finished
:ProcessFile
set str=%1
rename %1 %str:-=_%
:finished


rem 2- Deplacement des fichiers

MOVE "D:\Dir1\Dir2\Dir3\*.edi" "D:\Dir1\Dir2\Dir10"


=> le script ne fonctionne que lorsque je l'exécute directement à partir du dossier contenant les fichiers: J'aimerais pouvoir l'exécuter à partir d'un autre dossier

=> lorsque je l'exécute à partir d'un autre dossier il n'ya que le 1 et 3 qui s'exécutent.

=> lorsque j'exécute le 2 séparement à partir de la console DOS j'ai le message: Syntaxe incorrecte.

NB: L'objectif pour moi est de scheduler ce Bat à l'aide d'un utilitaire.va donc se poser le problème du repertoire courant ou s'execute le batch.

Merci infiniment de votre aide.



Afficher la suite 

2 réponses

Messages postés
17822
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
20 septembre 2019
4450
0
Merci
hello
pour le point 1 essayer
rename "D:\Dir1\Dir2\Dir3\%%f"  D:\Dir1\Dir2\Dir3\!ARG: =!
Messages postés
1681
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
19 février 2019
196
0
Merci
Hello,

Pour le problème de positionnement dans le répertoire courant du script, on utilise généralement en début de script :

rem echo %~d0
cd /d %~dp0


Qui permet de se positionner dans le répertoire courant ou se trouve le script, j'ai testé a l'instant sous W7 même si on est sur un autre disque il se positionne à l'endroit prévu. Ça évite les surprises quand on lance en mode non-interactif.

... et ensuite on travaille en relatif
..\..\dir\dir2
ou en absolu
c:\dir1\dir2
etc ...

You may stop me but you can't stop us all   ;-)