Forum Clubic

Dos batch

Bonjour,

J’ai un gros soucis de compréhension avec cet obscur langage qu’est le DOS !!!

je m’explique , j’ai un repertoire qui comtient des fichiers A ou B horodaté chacun. Ce qui donne A_20120301 , A_20120302 , A_20120302 … et les fichiers B identiques B_20120301, B_20120302,…

Ce que je voudrais c’est créé un répertoire au nom de la date Exemple : 20120301 , dans lequel je déplace mes deux fichiers A et B …

Mes déjà trois jours dessus , des brides parci parlà mais rien de concret ! HELP please…

Merci d’avance

oups j’ai oublié de préciser que les fichier A et B sont des .csv , et ça me bloque beaucoup pour réussir a avoir leur nom sans extension pour créé le repertoire…

si cela peut t’aiguiller :


@echo off
d:
cd \
dir /b >>liste.txt
FOR /F "tokens=1 delims=" %%b IN ('FINDSTR /C:".csv" d:\liste.txt') DO echo %%b >> csv.txt
FOR /F "tokens=1 delims=." %%b IN (d:\csv.txt)  DO echo %%b >> nom.txt
FOR /F "tokens=2 delims=_" %%b IN (d:\nom.txt)  DO echo %%b >> date.txt

dans liste.txt j’ai donc le contenu du “dir /b” (qui peut pointer n’importe ou dir /b c:\monrepertoire )
dans csv.txt j’ai que les fichiers en .csv (sans delim car =" )
dans nom.txt j’ai les fichiers en .csv sans le “.csv” (garde ce qui est avant le “.” )
dans date.txt -> j’ai viré ce qu’il y a avant _ (garde ce qui est apres le “_” ) tokens=2 pour avoir la deuxieme portion

en gros essayes


@echo off
dir /b >>%temp%\listingfichier.txt
FOR /F "tokens=2 delims=_." %%b IN ('FINDSTR /C:".csv" %temp%\listingfichier.txt')  DO echo %%b >> %temp%\listingdate.txt
del %temp%\listingfichier.txt
type %temp%\listingdate.txt

cela fait ici le trie en prenant ce qui est entre le “_” et le “.”, uniquement sur les fichiers contenant .csv
Edité le 05/06/2012 à 14:48