Aide pour finir mon script
Résolu
dormeuse
-
dormseuse -
dormseuse -
Bonjour,
Je vais essayer d'être claire, je souhaite faire un script qui a pour but de copier des fichiers à partir d'un répertoire vers un nouveau répertoire, et que dans ce nouveau répertoire le nom des fichiers ne soient pas conserver en entier.
Etape du script :
- Tout d'abord, l'utilisateur va saisir une date (ex : 23/11/2011)
- Le script va mettre cette date au format 20111123
- Créer un nouveau dossier dans C:\Temp\20111123
- Va copier le répertoire qui se trouve dans C:\Docs and settings\Utilisateur\Bureau\20111123 pour le Coller dans C:\Temp\20111123 (créé ci-dessus)
Jusqu'ici, tout va bien mon script fonctionne bien, voilà le script :
set /p JJMMAAAA= Qu'elle est la date a editer ? (sous le format : JJ/MM/AAAA)
REM je demande à l'utilisateur de renseigner la date à imprimer
for /f "tokens=1-3 delims=/" %%f in ("%JJMMAAAA%") do (
set AAAAMMJJ=%%h%%g%%f)
REM permet de supprimer les '/' et d'inverser le format de la date (résultat obtenu : AAAAMMJJ)
mkdir c:\temp\%AAAAMMJJ%
REM permet de créer un répertoire nommé avec la date à éditer au format AAAAMMJJ
xcopy C:\"Documents and Settings"\utilisateur\Bureau\%AAAAMMJJ% c:\temp\%AAAAMMJJ%
REM permet de copier le contenu d'un répertoire vers un autre
Mais par la suite, je veux que les fichiers qui se trouvent dans le nouveau répertoire, ne gardent qu'une partie de leur nom. Ils ont la forme suivante :
A01390_01G01_F040_20111123092139_518426312.pdf
A02000_03F01_F015_20111122150943_518345827.pdf
A02200_04C02_F040_20111123071918_518368403.pdf...
Je voudrais les renommer en enlevant les '_' et en conservant uniquement 2 parties et le .pdf, c'est à dire :
F04020111123092139.pdf
F01520111122150943.pdf
F04020111123071918.pdf...
Est-ce que cela est possible, si c'est le cas, est-ce que vous pouvez m'aider pour la suite du script?
Merci pour votre aide
Je vais essayer d'être claire, je souhaite faire un script qui a pour but de copier des fichiers à partir d'un répertoire vers un nouveau répertoire, et que dans ce nouveau répertoire le nom des fichiers ne soient pas conserver en entier.
Etape du script :
- Tout d'abord, l'utilisateur va saisir une date (ex : 23/11/2011)
- Le script va mettre cette date au format 20111123
- Créer un nouveau dossier dans C:\Temp\20111123
- Va copier le répertoire qui se trouve dans C:\Docs and settings\Utilisateur\Bureau\20111123 pour le Coller dans C:\Temp\20111123 (créé ci-dessus)
Jusqu'ici, tout va bien mon script fonctionne bien, voilà le script :
set /p JJMMAAAA= Qu'elle est la date a editer ? (sous le format : JJ/MM/AAAA)
REM je demande à l'utilisateur de renseigner la date à imprimer
for /f "tokens=1-3 delims=/" %%f in ("%JJMMAAAA%") do (
set AAAAMMJJ=%%h%%g%%f)
REM permet de supprimer les '/' et d'inverser le format de la date (résultat obtenu : AAAAMMJJ)
mkdir c:\temp\%AAAAMMJJ%
REM permet de créer un répertoire nommé avec la date à éditer au format AAAAMMJJ
xcopy C:\"Documents and Settings"\utilisateur\Bureau\%AAAAMMJJ% c:\temp\%AAAAMMJJ%
REM permet de copier le contenu d'un répertoire vers un autre
Mais par la suite, je veux que les fichiers qui se trouvent dans le nouveau répertoire, ne gardent qu'une partie de leur nom. Ils ont la forme suivante :
A01390_01G01_F040_20111123092139_518426312.pdf
A02000_03F01_F015_20111122150943_518345827.pdf
A02200_04C02_F040_20111123071918_518368403.pdf...
Je voudrais les renommer en enlevant les '_' et en conservant uniquement 2 parties et le .pdf, c'est à dire :
F04020111123092139.pdf
F01520111122150943.pdf
F04020111123071918.pdf...
Est-ce que cela est possible, si c'est le cas, est-ce que vous pouvez m'aider pour la suite du script?
Merci pour votre aide
A voir également:
- Aide pour finir mon script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Script les visiteurs pdf - Forum PDF
8 réponses
Salut ;)
Petite précision :
xcopy C:\"Documents and Settings"\utilisateur\Bureau\%AAAAMMJJ% c:\temp\%AAAAMMJJ%
Cette ligne est correcte, mais pas dans la mise en forme....
Quand tu as un epsace, il faut mettre entre guillemet le chemin complet...
Avec ceci, tu comprendras mieux :
Car si tu as affaire à un titre à rallonge, sous windows XP, bourrée d'espace, deux guillemets suffisent : "CHEMIN" -> au lieu de mettre des guillemets là où il y a un espace.
Ca va te permettre de gagner du temps au codage ;)
@+
Petite précision :
xcopy C:\"Documents and Settings"\utilisateur\Bureau\%AAAAMMJJ% c:\temp\%AAAAMMJJ%
Cette ligne est correcte, mais pas dans la mise en forme....
Quand tu as un epsace, il faut mettre entre guillemet le chemin complet...
Avec ceci, tu comprendras mieux :
xcopy "C:\Documents and Settings\utilisateur\Bureau\%AAAAMMJJ%" ":\temp\%AAAAMMJJ%
Car si tu as affaire à un titre à rallonge, sous windows XP, bourrée d'espace, deux guillemets suffisent : "CHEMIN" -> au lieu de mettre des guillemets là où il y a un espace.
Ca va te permettre de gagner du temps au codage ;)
@+
dormseuse
Merci Franco pour la petite info
hello
pour renommer les fichiers
pour renommer les fichiers
C:> dir /b A01390_01G01_F040_20111123092139_518426312.pdf A02000_03F01_F015_20111122150943_518345827.pdf A02200_04C02_F040_20111123071918_518368403.pdf C:> aa C:> dir /b F01520111122150943.pdf F04020111123071918.pdf F04020111123092139.pdf C:> type aa.bat @ echo off for /f "delims=_ tokens=1,2,3,4,5" %%a in ('dir /b *.pdf') do ( ren %%a_%%b_%%c_%%d_%%e %%c%%d.pdf ) C:>
Bonjour....
En espérant que tu n'as pas beaucoup de fichier PDF ;)
* la commande pour renommer : c'est ren
Pour en savoir plus, ouvre l'invite de commande et tape ren /?
Exemple :
* Mon fichier 1 s'appelle premier et le second s'appelle second...
* Ils sont sur C:\
* Je veux les renommer en pdf1 et pdf2
* je veux enfin les mettre sur c:\users\thomas\desktop,
Ce que je ferais, c'est de les renommer, et ensuite de les déplacer :)
Je fais donc ceci :
Ce n'est peut-être pas ce que tu cherches, mais si tu veux renommer, tu peux passer par la commande REN
En tout cas, le petit code marche pour moi...
A toi de l'adapter pour ton PC :)
Si tu n'as pas beaucoup de fichier à renommer, c'est l'idéal ;)
Sinon, on peut faire autrement :
* Renommer chaque fichier
* Faire une boucle de ces fichiers afin de les déplacer d'un coup
@+
Tiens moi au courant ;)
EDIT :
J'ai relus ton topic......
Les fichiers sont déjà dans un répertoire :|
Et je pense que ces fichiers, tu en as beaucoup, non ?
++
En espérant que tu n'as pas beaucoup de fichier PDF ;)
* la commande pour renommer : c'est ren
Pour en savoir plus, ouvre l'invite de commande et tape ren /?
Renomme un ou plusieurs fichiers. RENAME [lecteur:][chemin]nom_de_fichier1 nom_de_fichier2. REN [lecteur:][chemin]nom_de_fichier1 nom_de_fichier2. Vous ne pouvez pas spécifier un nouveau lecteur pour votre destination.
Exemple :
* Mon fichier 1 s'appelle premier et le second s'appelle second...
* Ils sont sur C:\
* Je veux les renommer en pdf1 et pdf2
* je veux enfin les mettre sur c:\users\thomas\desktop,
Ce que je ferais, c'est de les renommer, et ensuite de les déplacer :)
Je fais donc ceci :
cd c:\ ren premier.pdf pdf1.pdf ren second.pdf pdf2.pdf move "c:\pdf1.pdf" "c:\users\thomas\desktop" move "c:\pdf2.pdf" "c:\users\thomas\desktop"
Ce n'est peut-être pas ce que tu cherches, mais si tu veux renommer, tu peux passer par la commande REN
En tout cas, le petit code marche pour moi...
A toi de l'adapter pour ton PC :)
Si tu n'as pas beaucoup de fichier à renommer, c'est l'idéal ;)
Sinon, on peut faire autrement :
* Renommer chaque fichier
* Faire une boucle de ces fichiers afin de les déplacer d'un coup
@+
Tiens moi au courant ;)
EDIT :
J'ai relus ton topic......
Les fichiers sont déjà dans un répertoire :|
Et je pense que ces fichiers, tu en as beaucoup, non ?
++
En effet, j'ai beaucoup de fichiers à renommer et je les copie dans un premier temps dans un autre répertoire car je ne veux pas travailler sur l'original (en cas de pertes de fichiers ou autre).
Il me faut donc une boucle, là je bloque, je ne sais pas comment faire car en plus je ne veux conserver qu'une partie du nom du fichier et l'extension.
Merci
Il me faut donc une boucle, là je bloque, je ne sais pas comment faire car en plus je ne veux conserver qu'une partie du nom du fichier et l'extension.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
@ dubcek : je n'ai pas tout compris mais en même, je ne me suis pas trop attardée ce que tu as écris,
Toutefois je vois ça lundi ou mardi et je vous tiens au courant.
Merci
Toutefois je vois ça lundi ou mardi et je vous tiens au courant.
Merci
Bonjour,
Voilà mon nouveau script :
Le script fonctionne très bien comme ça.
Mais maintenant, je voudrais incrémenter une variable pour l'ajouter au nom mais ça n'incrémente pas, ça reste à 1
Est-ce que j'ai une erreur dans le script qui fait que ça ne fonctionne pas?
Merci pour vos réponses
Voilà mon nouveau script :
set /p JJMMAAAA= Qu'elle est la date a editer ? (sous le format : JJ/MM/AAAA) REM je demande à l'utilisateur de renseigner la date à imprimer for /f "tokens=1-3 delims=/" %%f in ("%JJMMAAAA%") do ( set AAAAMMJJ=%%h%%g%%f) REM permet de supprimer les '/' et d'inverser le format de la date (résultat obtenu : AAAAMMJJ) mkdir c:\temp\%AAAAMMJJ% REM permet de créer un répertoire nommé avec la date à éditer au format AAAAMMJJ xcopy "C:\Documents and Settings\utilisateur\Bureau\%AAAAMMJJ%" "C:\temp\%AAAAMMJJ%" REM permet de copier le contenu d'un répertoire vers un autre for /f "delims=_ tokens=1,2,3,4,5" %%a in ('dir /b C:\temp\%AAAAMMJJ%\*.pdf') do ( ren C:\temp\%AAAAMMJJ%\%%a_%%b_%%c_%%d_%%e %%a_%%d.pdf ) pause
Le script fonctionne très bien comme ça.
Mais maintenant, je voudrais incrémenter une variable pour l'ajouter au nom mais ça n'incrémente pas, ça reste à 1
set /p JJMMAAAA= Qu'elle est la date a editer ? (sous le format : JJ/MM/AAAA) REM je demande à l'utilisateur de renseigner la date à imprimer for /f "tokens=1-3 delims=/" %%f in ("%JJMMAAAA%") do ( set AAAAMMJJ=%%h%%g%%f) REM permet de supprimer les '/' et d'inverser le format de la date (résultat obtenu : AAAAMMJJ) mkdir c:\temp\%AAAAMMJJ% REM permet de créer un répertoire nommé avec la date à éditer au format AAAAMMJJ xcopy "C:\Documents and Settings\utilisateur\Bureau\%AAAAMMJJ%" "C:\temp\%AAAAMMJJ%" REM permet de copier le contenu d'un répertoire vers un autre set /a nb=1 for /f "delims=_ tokens=1,2,3,4,5" %%a in ('dir /b C:\temp\%AAAAMMJJ%\*.pdf') do ( ren C:\temp\%AAAAMMJJ%\%%a_%%b_%%c_%%d_%%e %%a_%%d.pdf set /a nb+=1 echo %nb% ) pause
Est-ce que j'ai une erreur dans le script qui fait que ça ne fonctionne pas?
Merci pour vos réponses