Hello,
J'essaie d'exécuter les opérations 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- Déplacer le fichiers vers un autre dossier

voilà ce que j'essaie:

Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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'y a que le 1 et 3 qui s'exécutent.

=> lorsque j'exécute le 2 séparément à 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 répertoire courant ou s’exécute le batch.

Merci infiniment de votre aide.