Je voudrais faire un batch DOS qui permettrait de renommer un fichier
de style factur.txt en TAAAAMMJJ_factur.txt ou T = Lettre
AAAA = Année (2004)
MM = Mois (01)
JJ = Jour (23)
et ceci en récupérant la date du jour.
Ce batch sera lancé sous WIN98
Est-ce possible sous DOS ?
Merci pour vos futures réponses !!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Cyrille \cns\ Szymanski
> Bonjour,
Je voudrais faire un batch DOS qui permettrait de renommer un fichier de style factur.txt en TAAAAMMJJ_factur.txt ou T = Lettre AAAA = Année (2004) MM = Mois (01) JJ = Jour (23) et ceci en récupérant la date du jour. Ce batch sera lancé sous WIN98 Est-ce possible sous DOS ? Merci pour vos futures réponses !!
Nico.
Avec un batch je ne pense pas que ce soit possible. cmd/command est beaucoup moins expressif que ses amis unixiens. Par contre un programme en ANSI C fait ça en quelques lignes :
En gros cela donne :
int main( int argc, char *argv[] ) { char nomfichier[256]; tm *t; time_t timer; char lettre = 'T';
if( argc==1 ) { printf("Vous devez entrer un nom de fichier"); exit(-1); }
// Récupérer la date timer = time(NULL); t = localtime( &timer );
// générer le nom de fichier sprintf( nomfichier, "%c%4d%02d%02d_%s", lettre, t->tm_year+1900, t->tm_mon+1, t->tm_mday, argv[1] );
// renommer le fichier rename( argv[1], nomfichier );
Je voudrais faire un batch DOS qui permettrait de renommer un fichier
de style factur.txt en TAAAAMMJJ_factur.txt ou T = Lettre
AAAA = Année (2004)
MM = Mois (01)
JJ = Jour (23)
et ceci en récupérant la date du jour.
Ce batch sera lancé sous WIN98
Est-ce possible sous DOS ?
Merci pour vos futures réponses !!
Nico.
Avec un batch je ne pense pas que ce soit possible. cmd/command est
beaucoup moins expressif que ses amis unixiens. Par contre un programme
en ANSI C fait ça en quelques lignes :
En gros cela donne :
int main( int argc, char *argv[] )
{
char nomfichier[256];
tm *t;
time_t timer;
char lettre = 'T';
if( argc==1 ) {
printf("Vous devez entrer un nom de fichier");
exit(-1);
}
// Récupérer la date
timer = time(NULL);
t = localtime( &timer );
// générer le nom de fichier
sprintf( nomfichier, "%c%4d%02d%02d_%s",
lettre, t->tm_year+1900, t->tm_mon+1,
t->tm_mday, argv[1] );
// renommer le fichier
rename( argv[1], nomfichier );
Je voudrais faire un batch DOS qui permettrait de renommer un fichier de style factur.txt en TAAAAMMJJ_factur.txt ou T = Lettre AAAA = Année (2004) MM = Mois (01) JJ = Jour (23) et ceci en récupérant la date du jour. Ce batch sera lancé sous WIN98 Est-ce possible sous DOS ? Merci pour vos futures réponses !!
Nico.
Avec un batch je ne pense pas que ce soit possible. cmd/command est beaucoup moins expressif que ses amis unixiens. Par contre un programme en ANSI C fait ça en quelques lignes :
En gros cela donne :
int main( int argc, char *argv[] ) { char nomfichier[256]; tm *t; time_t timer; char lettre = 'T';
if( argc==1 ) { printf("Vous devez entrer un nom de fichier"); exit(-1); }
// Récupérer la date timer = time(NULL); t = localtime( &timer );
// générer le nom de fichier sprintf( nomfichier, "%c%4d%02d%02d_%s", lettre, t->tm_year+1900, t->tm_mon+1, t->tm_mday, argv[1] );
// renommer le fichier rename( argv[1], nomfichier );
On 25 Jan 2004 10:50:04 GMT, Cyrille "cns" Szymanski wrote:
Bonjour,
Je voudrais faire un batch DOS qui permettrait de renommer un fichier de style factur.txt en TAAAAMMJJ_factur.txt ou T = Lettre AAAA = Année (2004) MM = Mois (01) JJ = Jour (23) et ceci en récupérant la date du jour. Ce batch sera lancé sous WIN98 Est-ce possible sous DOS ? Merci pour vos futures réponses !!
ben si. ci-dessous un script qui tourne en NT4 en schédulé, en compte System A décortiquer et à adapter
@echo off FOR /F " tokens=1 delims= " %%i IN ('date /t') do set joursem=%%i FOR /F " tokens=2 delims= " %%i IN ('date /t') do set jourseman=%%i
rem *************** si test en direct dans une fenêtre la date est inversée rem *************** dans ce cas dévalider la 1ere ligne et valider la seconde
FOR /F " tokens=2 delims=/" %%i IN ( "%jourseman%") do set jour=%%i rem FOR /F " tokens=1 delims=/" %%i IN ( "%jourseman%") do set jour=%%i
rem echo %joursem% %jour% > C:Jobs"%jour%".lst
rem if "%joursem%" == "sam." goto FIN rem if "%joursem%" == "sat" goto FIN rem if "%joursem%" == "sat." goto FIN rem if "%joursem%" == "dim." goto FIN rem if "%joursem%" == "sun" goto FIN rem if "%joursem%" == "sun." goto FIN
echo REMPLACE %jour% > C:JobsScript.txt rem les lignes suivantes ont été supprimées
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
On 25 Jan 2004 10:50:04 GMT, Cyrille "cns" Szymanski <cns2@cns.invalid>
wrote:
Bonjour,
Je voudrais faire un batch DOS qui permettrait de renommer un fichier
de style factur.txt en TAAAAMMJJ_factur.txt ou T = Lettre
AAAA = Année (2004)
MM = Mois (01)
JJ = Jour (23)
et ceci en récupérant la date du jour.
Ce batch sera lancé sous WIN98
Est-ce possible sous DOS ?
Merci pour vos futures réponses !!
ben si. ci-dessous un script qui tourne en NT4 en schédulé, en compte
System
A décortiquer et à adapter
@echo off
FOR /F " tokens=1 delims= " %%i IN ('date /t') do set joursem=%%i
FOR /F " tokens=2 delims= " %%i IN ('date /t') do set jourseman=%%i
rem *************** si test en direct dans une fenêtre la date est
inversée
rem *************** dans ce cas dévalider la 1ere ligne et valider la
seconde
FOR /F " tokens=2 delims=/" %%i IN ( "%jourseman%") do set jour=%%i
rem FOR /F " tokens=1 delims=/" %%i IN ( "%jourseman%") do set jour=%%i
rem echo %joursem% %jour% > C:Jobs"%jour%".lst
rem if "%joursem%" == "sam." goto FIN
rem if "%joursem%" == "sat" goto FIN
rem if "%joursem%" == "sat." goto FIN
rem if "%joursem%" == "dim." goto FIN
rem if "%joursem%" == "sun" goto FIN
rem if "%joursem%" == "sun." goto FIN
echo REMPLACE %jour% > C:JobsScript.txt
rem les lignes suivantes ont été supprimées
--
* enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez
m'écrire *
* Donne un poisson à un homme, il aura à manger pour un jour
* Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
On 25 Jan 2004 10:50:04 GMT, Cyrille "cns" Szymanski wrote:
Bonjour,
Je voudrais faire un batch DOS qui permettrait de renommer un fichier de style factur.txt en TAAAAMMJJ_factur.txt ou T = Lettre AAAA = Année (2004) MM = Mois (01) JJ = Jour (23) et ceci en récupérant la date du jour. Ce batch sera lancé sous WIN98 Est-ce possible sous DOS ? Merci pour vos futures réponses !!
ben si. ci-dessous un script qui tourne en NT4 en schédulé, en compte System A décortiquer et à adapter
@echo off FOR /F " tokens=1 delims= " %%i IN ('date /t') do set joursem=%%i FOR /F " tokens=2 delims= " %%i IN ('date /t') do set jourseman=%%i
rem *************** si test en direct dans une fenêtre la date est inversée rem *************** dans ce cas dévalider la 1ere ligne et valider la seconde
FOR /F " tokens=2 delims=/" %%i IN ( "%jourseman%") do set jour=%%i rem FOR /F " tokens=1 delims=/" %%i IN ( "%jourseman%") do set jour=%%i
rem echo %joursem% %jour% > C:Jobs"%jour%".lst
rem if "%joursem%" == "sam." goto FIN rem if "%joursem%" == "sat" goto FIN rem if "%joursem%" == "sat." goto FIN rem if "%joursem%" == "dim." goto FIN rem if "%joursem%" == "sun" goto FIN rem if "%joursem%" == "sun." goto FIN
echo REMPLACE %jour% > C:JobsScript.txt rem les lignes suivantes ont été supprimées
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
Christian ASTOR
Patrick D. a écrit:
@echo off FOR /F " tokens=1 delims= " %%i IN ('date /t') do set joursem=%%i
Ne marchera pas sous Win9x, puisqu'il y a de très nombreuses différences entre les 2 interpréteurs de commandes Win9x/NT, notamment le parsing "for /F. (Win95cmd existait pour étendre command.com) Sinon, on peut trouver sur Google divers ex faisant à peu près ce que demande l'OP, mais ce sont des usines à gaz, et HS ici, et comme a dit Cyrille, il est beaucoup + simple de le faire en C ou C++, voire WSH...
Patrick D. a écrit:
@echo off
FOR /F " tokens=1 delims= " %%i IN ('date /t') do set joursem=%%i
Ne marchera pas sous Win9x, puisqu'il y a de très nombreuses différences
entre les 2 interpréteurs de commandes Win9x/NT, notamment le parsing
"for /F.
(Win95cmd existait pour étendre command.com)
Sinon, on peut trouver sur Google divers ex faisant à peu près ce que
demande l'OP, mais ce sont des usines à gaz, et HS ici, et comme a dit
Cyrille, il est beaucoup + simple de le faire en C ou C++, voire WSH...
@echo off FOR /F " tokens=1 delims= " %%i IN ('date /t') do set joursem=%%i
Ne marchera pas sous Win9x, puisqu'il y a de très nombreuses différences entre les 2 interpréteurs de commandes Win9x/NT, notamment le parsing "for /F. (Win95cmd existait pour étendre command.com) Sinon, on peut trouver sur Google divers ex faisant à peu près ce que demande l'OP, mais ce sont des usines à gaz, et HS ici, et comme a dit Cyrille, il est beaucoup + simple de le faire en C ou C++, voire WSH...