Rename a file onto a Specific Path [DOS]

Fermé
providence Messages postés 98 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 18 novembre 2015 - Modifié par providence le 18/11/2015 à 21:48
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 - 15 déc. 2015 à 17:00
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.



A voir également:

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
19 nov. 2015 à 08:18
hello
pour le point 1 essayer
rename "D:\Dir1\Dir2\Dir3\%%f"  D:\Dir1\Dir2\Dir3\!ARG: =!
0
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 15/12/2015 à 17:01
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   ;-)
0