Problème programmation .BAT

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

linkin774
Batcheur débutant
Messages : 10
Enregistré le : 19 déc. 2014 12:12

Problème programmation .BAT

Message 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.
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

Re: Problème programmation .BAT

Message 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 ! :)
Modifié en dernier par -- batchman -- le 21 déc. 2014 03:34, modifié 1 fois.
-- batchman --
LNOW
Batcheur débutant
Messages : 17
Enregistré le : 20 déc. 2014 12:28

Re: Problème programmation .BAT

Message 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 :?:
linkin774
Batcheur débutant
Messages : 10
Enregistré le : 19 déc. 2014 12:12

Re: Problème programmation .BAT

Message 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.
linkin774
Batcheur débutant
Messages : 10
Enregistré le : 19 déc. 2014 12:12

Re: Problème programmation .BAT

Message par linkin774 »

C'est exactement ce que je recherchai !

Merci !
linkin774
Batcheur débutant
Messages : 10
Enregistré le : 19 déc. 2014 12:12

Re: Problème programmation .BAT

Message 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
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

Re: Problème programmation .BAT

Message par -- batchman -- »

Hmm et bien c'est très simple :)

Alors je crois que cette fois c'est bon :mrgreen: : 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 ? :D
-- batchman --
linkin774
Batcheur débutant
Messages : 10
Enregistré le : 19 déc. 2014 12:12

Re: Problème programmation .BAT

Message 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
linkin774
Batcheur débutant
Messages : 10
Enregistré le : 19 déc. 2014 12:12

Re: Problème programmation .BAT

Message 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
linkin774
Batcheur débutant
Messages : 10
Enregistré le : 19 déc. 2014 12:12

Re: Problème programmation .BAT

Message 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 ?
Répondre