BATCH - Créer un dossier avec une partie du nom du fichier
Saaw
-
barnabe0057 Messages postés 14455 Date d'inscription Statut Contributeur Dernière intervention -
barnabe0057 Messages postés 14455 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'ai un petit soucis concernant l'élaboration d'un script. J'ai besoin de créer un dossier avec une partie du nom du fichier.
Par exemple, pour le fichier : 20200614_SAP_ZCMF_MB51_V1.csv , je dois avoir comme nom de dossier : SAP_ZCMF_MB51.
Je dois donc retirer la date et la Version.
Avez- vous des pistes ?
Voici le code que j'ai :
EDIT : Ajout des balises de code ( je t'avais déjà demandé de le faire dans une précédente question ! )
Merci d'avance,
J'ai un petit soucis concernant l'élaboration d'un script. J'ai besoin de créer un dossier avec une partie du nom du fichier.
Par exemple, pour le fichier : 20200614_SAP_ZCMF_MB51_V1.csv , je dois avoir comme nom de dossier : SAP_ZCMF_MB51.
Je dois donc retirer la date et la Version.
Avez- vous des pistes ?
Voici le code que j'ai :
<@echo off setlocal enabledelayedexpansion for %%A in (*.csv) do ( echo file found %%A for /f "delims=" %%B in ("%%A") do set fname=%%~nB for /f "delims=" %%C in ("%%A") do set fextn=%%~xC for /f "tokens= 2,3 delims=_" %%D in ("!fname!") do set folname=%%D echo folder name !folname! if not exist "!folname!" ( echo Folder !folname! does not exist, creating md "!folname!" ) else ( echo Folder !folname! exists ) echo Moving file %%A to folder !folname! move "%%A" "!folname!" ) echo Finished pause>
EDIT : Ajout des balises de code ( je t'avais déjà demandé de le faire dans une précédente question ! )
Merci d'avance,
A voir également:
- BATCH - Créer un dossier avec une partie du nom du fichier
- Fichier bin - Guide
- Creer un fichier .bat - Guide
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
Bonjour,
Une seule boucle FOR devrait suffire :
Une seule boucle FOR devrait suffire :
for /f "tokens=1-5 delims=_" %%A in ('dir /b *.csv') do (
echo file found %%A_%%B_%%C_%%D_%%E
echo folder name %%B_%%C_%%D
if not exist "%%B_%%C_%%D" (
echo Folder %%B_%%C_%%D does not exist, creating
md "%%B_%%C_%%D"
) else (
echo Folder %%B_%%C_%%D exists
)
echo Moving file %%A to folder %%B_%%C_%%D
move "%%A_%%B_%%C_%%D_%%E" "%%B_%%C_%%D"
)
echo Finished
pause>