Rename a file onto a Specific Path [DOS]
providence
Messages postés
98
Date d'inscription
Statut
Membre
Dernière intervention
-
ryko1820 Messages postés 1677 Date d'inscription Statut Membre Dernière intervention -
ryko1820 Messages postés 1677 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Rename a file onto a Specific Path [DOS]
- A-pdf rename - Télécharger - PDF
- File renamer - Télécharger - Gestion de fichiers
- .Bin file - Guide
- Lupas rename - Télécharger - Gestion de fichiers
- Host file - Guide
2 réponses
Hello,
Pour le problème de positionnement dans le répertoire courant du script, on utilise généralement en début de script :
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
You may stop me but you can't stop us all ;-)
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\dir2ou en absolu
c:\dir1\dir2etc ...
You may stop me but you can't stop us all ;-)