Page 1 sur 2
Problème programmation .BAT
Posté : 19 déc. 2014 12:19
par linkin774
Bonjour à tous,
Je suis nouveau sur le forum, je suis actuellement en grande difficulté pour créer mon programme .BAT
Mon problème : je dois créer un petit programme qui serait capable de créer un dossier et de ranger des fichier dedans.
Cependant, j'ai trois fichiers (un fichier .txt, un fichier .PDF et un fichier sans extension).
Les trois fichiers porte exactement le même nom et de se fait j'aimerai qu'un dossier se créer avec le nom de ces fichiers et qu'il range automatiquement dedans.
(Bien entendu je pourrai le faire à la main me direz vous, mais ce problème s'applique sur plusieurs milliers de fichiers .. donc pas réalisable manuellement).
Je suis débutant en .bat donc ce programme m'est assez difficile à réaliser seul.
J’espère que quelqu'un serai me guider vers la solution.
Merci.
Re: Problème programmation .BAT
Posté : 19 déc. 2014 20:39
par -- batchman --
Salut !
Si j'ai bien compris tu veux donc copier 3 types de fichiers différents mais avec un même nom ?
Par exemple si t'as fichier1.pdf, fichier2.txt et fichier1 sans extension tu peux faire ça :
Code : Tout sélectionner
@echo off
for %%a in (.pdf, .txt) do (copy "chemin\fichier1%%a" "chemindossier")
copy "chemin\fichier1" "chemindossier"
Dis moi ce que tu en penses !
Re: Problème programmation .BAT
Posté : 20 déc. 2014 12:57
par LNOW
Hello,
j'ai peut être compris différemment:
Tu as des fichiers NOM1.txt, NOM1.PDF, NOM1, NOM2.TXT, NOM2.PDF, NOM2, ....
Et tu souhaites que les fichiers soient déplacés dans des dossiers NOM1, NOM2, NOM3, ....
Sauf que si tu as un fichier NOM1, tu ne peux pas créer un dossier NOM1 car le nom est exactement le même.
Je te propose donc de créer les dossiers avec l'extension .REP, y déplacer les fichiers, puis renommer les dossiers en retirant l'extension .REP
Code : Tout sélectionner
@echo off
ECHO Creation des dossiers .REP
for %%a in (*.*) do IF NOT "%~nx0"=="%%a" if not exist "%%~na.REP" md "%%~na.REP"
ECHO Deplacement des fichiers dans le dossier correspondant .REP - sauf le script...
for %%a in (*.*) do IF NOT "%~nx0"=="%%a" move "%%a" "%%~na.REP"
ECHO Renommage des dossiers .REP pour retirer l'extension
for /D %%a in (*) do ren "%%a" "%%~na"
echo fin.
J'ai testé, ça fait ce que je voulais - c'est déjà ça.
Maintenant, je sais pas si c'est ce que tu voulais
Re: Problème programmation .BAT
Posté : 22 déc. 2014 10:21
par linkin774
Bonjour,
Merci de m'avoir répondu aussi rapidement !
Je vais essayer ça de suite et je vous tiens informé du résultat.
Re: Problème programmation .BAT
Posté : 22 déc. 2014 10:36
par linkin774
C'est exactement ce que je recherchai !
Merci !
Re: Problème programmation .BAT
Posté : 22 déc. 2014 13:37
par linkin774
C'était parfait jusqu'à ce que je me rende compte d'une nouvelle difficulté ..
En gros maintenant j'ai :
- Nom1.PDF
- Nom1.TXT
- Nom1
ET
- Nom1-A.PDF
J'aimerai qu'il me créer un seul dossier portant le nom "Nom1" et incluant les 4 fichiers sans les renommer
Re: Problème programmation .BAT
Posté : 23 déc. 2014 01:35
par -- batchman --
Hmm et bien c'est très simple
Alors je crois que cette fois c'est bon
: ce tout petit bout de code est suffisant il me semble,
il déplace tous tes fichiers composés de "Nom..." dans un dossier au nom temporaire ( bien joué LNOW
puis finalement renomme ce dossier Nom1. ( c'est ce que tu voulais faire je crois
)
Code : Tout sélectionner
@echo off
if not exist DosNom1 md DosNom1
:count
set /a c=c+1
move "Nom%c%*" "DosNom1"
if %errorlevel% equ 0 goto count
ren DosNom1 Nom1
Alors ? Heureux ?
Re: Problème programmation .BAT
Posté : 23 déc. 2014 10:44
par linkin774
Bonjour,
Merci de répondre toujours aussi rapidement !
Cependant je ne comprend pas trop comment placer cette ligne de code ..
Si je créer un nouveau fichier.bat et que j'y colle ceci alors j'ai un dossier 'Nom1' qui apparait mais rien ne se déplace dedans
Re: Problème programmation .BAT
Posté : 23 déc. 2014 11:03
par linkin774
Batchman, ce code ne fonctionne qu'avec des fichiers portants le nom : 'Nom1'
Mais ce n'était qu'un exemple. Si mes fichier portes des noms différents alors la plus rien ne fonctionne.
LNOW tu as bien compris ce que je recherchais !
Il doit juste manquer un petit quelque chose pour que le programme ajoute des fichiers portants juste un '-A' derrière
Re: Problème programmation .BAT
Posté : 23 déc. 2014 11:20
par linkin774
En gros c'est quelque chose comme ça que je cherche .. ça ne fonctionne pas évidement mais vous devez surement comprendre ce que je cherche a faire :
Code : Tout sélectionner
@echo off
ECHO Creation des dossiers .REP
for %%a in (*.*) do IF NOT "%~nx0"=="%%a" if not exist "%%~na.REP" md "%%~na.REP"
:count
set /a c=c+1
ECHO Deplacement des fichiers dans le dossier correspondant .REP - sauf le script...
for %%a in (*.*) do IF NOT "%~nx0"=="%%a" move "%%a%c%" "%%~na.REP"
if %errorlevel% equ 0 goto count
ECHO Renommage des dossiers .REP pour retirer l'extension
for /D %%a in (*) do ren "%%a" "%%~na"
echo fin.
Est ce que c'est complètement stupide ou il y a une part de vérité dans ce mélange de réponses ?