Il y a actuellement 165 visiteurs
Vendredi 17 Septembre 2021
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Copier tous les fichier d'un même type en bat

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Copier tous les fichier d'un même type en bat

Message le 04 Juin 2021 14:06

Bonjour.

J'ai vu qu'on pouvait utiliser l'astérisque en batch comme "joker", pour viser plusieurs fichiers d'un seul coup, comme par exemple le code ci-dessous qui serait censé copier tous les fichier mp3 dans un nouveau dossier :

Code: Tout sélectionner
xcopy  c:\*.mp3  nom_du_dossier


Sauf que ça ne fonctionne pas chez moi, est-ce que c'est quelque chose qui fonctionnait uniquement auparavant ?
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 


Re: Copier tous les fichier d'un même type en bat

Message le 04 Juin 2021 16:41

Bonjour mlkgiosn,

mlkgiosn a écrit:Bonjour.

J'ai vu qu'on pouvait utiliser l'astérisque en batch comme "joker", pour viser plusieurs fichiers d'un seul coup, comme par exemple le code ci-dessous qui serait censé copier tous les fichier mp3 dans un nouveau dossier :

Code: Tout sélectionner
xcopy  c:\*.mp3  nom_du_dossier


Sauf que ça ne fonctionne pas chez moi, est-ce que c'est quelque chose qui fonctionnait uniquement auparavant ?



Il s'agit tout simplement d'une erreur de syntaxe de ta part.
Tu dois également indiquer d'une part la lettre du lecteur de la destination où tu veux copier tous tes fichiers .bat ainsi que le commutateur /I


Code: Tout sélectionner
xcopy  c:\*.mp3  c:\nom_du_dossier /I


Le commutateur /I est à assigner à ton script afin d' éviter une demande de confirmation pour que nom_du_dossier soit considéré comme un fichier ou un répertoire. Le commutateur /I considère le nom de ton dossier comme un répertoire et non un fichier

/I Si la destination n’existe pas et que plus d’un fichier est copié, considérer la destination comme devant être un répertoire.


Nota: commande tester avec succès pour ma part.

Bonne journée
Avatar de l'utilisateur
heracles
Expert(e)
Expert(e)
 
Messages: 1199
Inscription: 02 Juin 2014 19:18
 

Re: Copier tous les fichier d'un même type en bat

Message le 04 Juin 2021 16:50

Merci, en fait je pensais que ça copier tous les mp3 de C:/ dans un dossier (même s'ils étaient dans des sous-répertoires), je n'avais pas compris que ça copiait que ceux qui étaient directement dans C:/.
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 

Re: Copier tous les fichier d'un même type en bat

Message le 04 Juin 2021 19:43

Re,

Désolé pour le retard.


La commande xcopy ne permet pas de copier tous les fichiers .bat présent sous les dossiers et sous-dossiers du lecteur c: dans un dossier spécifique. Il n'y a pas de commutateur permettant de faire une recherche récursive dans tous les dossiers et sous-dossiers du lecteur c:


:wink: Il faut faire cela avec une autre commande. Je t'ai crée un ensemble de commande à enregistrer sous un fichier bat.
Je l'ai testé et cela fonctionne.

  • Dans la zone de recherche, tu inscris bloc
  • Tu ouvres bloc-notes puis tu copies les lignes ci-dessous et tu enregistres sur ton bureau, le fichier sous le nom Recherche de tous les fichiers bat.bat (Nota: n'oubli pas l'extension .bat)
  • Tu fais un clic droit sur le fichier Recherche de tous les fichiers bat.bat et tu sélectionnes "exécuter en tant qu'administrateur"
  • Patiente jusqu'à la fermeture de la fenêtre de l'invite de commande. Le fichier c:\test\Resultat.txt s'ouvrira automatiquement

Les commandes se décomposent comme ceci:

  1. Création du répertoire
  2. Recherche de tous les fichiers .bat du lecteur c:
  3. Affichage du résultat.


Code: Tout sélectionner
@echo OFF
MD c:\test
dir c:\*.bat /B /S >>c:\test\Resultat.txt
notepad c:\test\Resultat.txt



Bonne soirée
Avatar de l'utilisateur
heracles
Expert(e)
Expert(e)
 
Messages: 1199
Inscription: 02 Juin 2014 19:18
 

Re: Copier tous les fichier d'un même type en bat

Message le 04 Juin 2021 20:59

Coucou, merci, incroyable tout ce qu'on peut faire avec un langage aussi simple :wink: .

Il y en a beaucoup par contre des bat lol.
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 

Re: Copier tous les fichier d'un même type en bat

Message le 05 Juin 2021 07:08

Bonjour mlkgiosn,


Comme on le dit, la nuit porte conseil.
Par contre, mon batch permet uniquement de lister les noms des fichiers .bat mais ne fait pas une copie intégrale des fichiers .bat dans un dossier.


Pour faire une copie des fichiers .bat (sans déplacer le fichier original), il faut effectuer cette commande. Inconvénient, cela copie également l'emplacement des dossiers contenant un fichier .bat. On peut éviter cela en supprimant le commutateur /S

Code: Tout sélectionner
@echo OFF
Xcopy  /I  / S "*.bat" "C:\test\"
start C:\test
exit



Celui-ci est parfait:

Code: Tout sélectionner
@echo OFF
Xcopy  /I  "*.bat" "C:\test\"
start C:\test
exit


La liste est moins longue. :wink:


Interprétation des commutateurs:

/A Copie uniquement les fichiers ayant l’attribut archive, ne
modifie pas l’attribut.
/S Copie les répertoires et sous-répertoires à l’exception des
répertoires vides.
/I Si la destination n’existe pas et que plus d’un fichier est
copié, considérer la destination comme devant être
un répertoire.



En batch, on pourrait partir sur une boucle avec FOR %%variable IN (ensemble) DO commande [paramètres] ou FOR /R [[lecteur:]chemin] %%variable IN (ensemble) DO commande [paramètres] mais cela devient compliqué puisque je n'ai plus pratiqué le batch depuis fort longtemps. J'en resterais sur mon dernier batch.


Edit: j'ai fais un début avec une boucle FOR mais ce n'est pas encore au point.

Il faut créer le répertoire sous un autre lecteur que C: afin d'éviter l'erreur " Impossible de réaliser une copie cyclique"
Nota: ( quand on copie le contenu d'un dossier sous C: dans un sous-dossier de ce même dossier sous le même lecteur, on obtient cette erreur).


batch testé: ok :wink: :

Code: Tout sélectionner
@echo off
md d:\test
for /R c: %%f in (*.bat) do Xcopy %%f D:\test /I /S /F /Y
start D:\test
exit




Bonne journée
Avatar de l'utilisateur
heracles
Expert(e)
Expert(e)
 
Messages: 1199
Inscription: 02 Juin 2014 19:18
 

Re: Copier tous les fichier d'un même type en bat

Message le 06 Juin 2021 14:55

Je sais pas si je dois recréer un sujet car ça concerne toujours le batch, je me demandais, la commande "choice" envoie un signal sonore si on entre un choix non compris dans la liste, il n'y a pas moyen de renvoyer autre chose ? Du
style un message écrit ?
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 

Re: Copier tous les fichier d'un même type en bat

Message le 06 Juin 2021 15:28

Bonjour mlkgiosn,

mlkgiosn a écrit:Je sais pas si je dois recréer un sujet car ça concerne toujours le batch, je me demandais, la commande "choice" envoie un signal sonore si on entre un choix non compris dans la liste, il n'y a pas moyen de renvoyer autre chose ? Du
style un message écrit ?


https://www.batcher.fr/index.php?page=cmd&cmd=choice


La commande choice définie une sélection de touche, par exemple o ou n. Si tu sélectionnes une autre touche que celles demandées, tu as un avertissement sonore comme tu l'indiques.

Pour éviter cela, il faudrait associer dans ton batch, la commande choice avec une condition définie par la commande If ERRORLEVEL . Le texte renvoyé dépend du nombre de condition assignée. Si une condition n'est pas définie, tu auras un bip sonore. Il faudrait également définir les touches non validés afin d'éviter le bip sonore avec d'autres commutateurs utilisés en batch. Mais là, ce n'est pas gagné !!! :lol:



Edit: J'ai testé divers commandes batch et je ne pense pas que l'on puisses faire un choix mauvais de touches sans émission de bip avec la commande choice. :roll:

Toutes les commandes utilisées en batch
c'est écrit sur le lien ci-dessus:

La variable d’environnement ERRORLEVEL est définie sur l’index de la clé que l’utilisateur sélectionne dans la liste de choix. Le premier choix dans la liste retourne 1 la valeur, la deuxième valeur 2 , et ainsi de suite. Si l’utilisateur appuie sur une touche qui n’est pas un choix valide, le choix émet un signal sonore d’avertissement.


Bonne journée
Avatar de l'utilisateur
heracles
Expert(e)
Expert(e)
 
Messages: 1199
Inscription: 02 Juin 2014 19:18
 

Re: Copier tous les fichier d'un même type en bat

Message le 07 Juin 2021 19:07

Pour m'entrainer j'ai écrit ce code (oui chacun son niveau :lol: ) :
Code: Tout sélectionner
@echo off

del fichier.txt

set /a compteur=1
set /a comparateur=100

set /p result=Nombre a tester:

:eof

echo %compteur% >> fichier.txt

set/a variable=result %%2

if %result%==1 (
echo %result%
echo FINI
PAUSE > nul
set /a compteur=compteur +1
goto eof) 

if %variable% ==0 (
echo %result%
set/a result = result /2
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)

if not %variable% ==0 (
echo %result%
set/a result = 3*result +1
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)





C'est un code qui teste la conjecture de Syracuse pour un nombre choisi par l'utilisateur, pour ceux qui ne savent pas, on prend un nombre, s'il est pair on divise par 2 et sinon on le multiplie par 3 et on lui ajoute 1, on recommence avec le résultat, il semblerait, même si ce n'est pas démontré qu'on retombe toujours sur 1 peu importe le nombre de départ.



Il fonctionne très bien, par contre je ne comprends pas pourquoi il ne fonctionne pas si je l'écrit comme ça :

Code: Tout sélectionner
@echo off

del fichier.txt

set /a compteur=1
set /a comparateur=100

set /p result=Nombre a tester:

:eof

echo %compteur% >> fichier.txt

if %result%==1 (
echo %result%
echo FINI
PAUSE > nul
set /a compteur=compteur +1
goto eof) 

if %result% %%2 ==0 (
echo %result%
set/a result = result /2
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)

if not %result% %%2 ==0 (
echo %result%
set/a result = 3*result +1
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 

Re: Copier tous les fichier d'un même type en bat

Message le 07 Juin 2021 20:42

Bonsoir Mlkgiosn,

mlkgiosn a écrit:Pour m'entrainer j'ai écrit ce code (oui chacun son niveau :lol: ) :



Il fonctionne très bien, par contre je ne comprends pas pourquoi il ne fonctionne pas si je l'écrit comme ça :

Code: Tout sélectionner
@echo off

del fichier.txt

set /a compteur=1
set /a comparateur=100

set /p result=Nombre a tester:

:eof

echo %compteur% >> fichier.txt

if %result%==1 (
echo %result%
echo FINI
PAUSE > nul
set /a compteur=compteur +1
goto eof) 

if %result% %%2 ==0 (
echo %result%
set/a result = result /2
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)

if not %result% %%2 ==0 (
echo %result%
set/a result = 3*result +1
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)


Variable et valeur de la variable non déclare dans ce batch, est ce voulu pour toi ?

Code: Tout sélectionner
set/a variable=result %%2


Normalement, tu as 2 variables à déclarer.


Cela longtemps que je n'ai plus pratiqué le batch. C'est pas que je ne veux pas te répondre explicitement mais éventuellement tu peux poser ta problématique sur le forum Batcher


Bonne soirée
Avatar de l'utilisateur
heracles
Expert(e)
Expert(e)
 
Messages: 1199
Inscription: 02 Juin 2014 19:18
 

Re: Copier tous les fichier d'un même type en bat

Message le 07 Juin 2021 21:03

La variable (que j'ai simplement appelé "variable" d'ailleurs :lol: ) n'est pas utilisé dans le 2ème code, je ne l'ai donc pas déclaré.

J'ai l'impression que ce sont les "If %result% %%2" (echo .....)" qui ne fonctionnent pas, et je comprend pas bien pourquoi.
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 

Re: Copier tous les fichier d'un même type en bat

Message le 08 Juin 2021 08:43

Bonjour Mlkgiosn,

mlkgiosn a écrit:J'ai l'impression que ce sont les "If %result% %%2" (echo .....)" qui ne fonctionnent pas, et je comprend pas bien pourquoi.



For %%2 if %result%==0 serait plus approprié, tu en penses quoi ?

Je n'ai pas encore ton niveau. Peut être que je me trompe mais le problème lorsque que l'on utilise plus d'une condition dans un batch, il vaut mieux faire usage de setlocal enabledelayedexpansion et endlocal pour encadré ces boucles.
Cela permet d'éviter la confusion des variables utilisées dans la boucle avec les variable utilisée dans la condition de contrôle: l'expansion de la variable permet de retarder le résultat de la condition de contrôle qui seras prise en compte uniquement lorsque que la boucle For seras terminée afin d'avoir un résultat logique.


Tu as essayé ceci pour tes conditions:

Code: Tout sélectionner
setlocal enabledelayedexpansion

if %result%==1 (
 echo %result%
echo FINI
PAUSE > nul
set /a compteur=compteur +1
goto eof) 

ENDLOCAL


setlocal enabledelayedexpansion

For %%2 if %result%==0

) do (
echo %result%
set/a result = result /2
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)

Endlocal


setlocal enabledelayedexpansion

For %%2 if %result%==0

) do (
echo %result%
set/a result = 3*result +1
REM PAUSE > nul
set /a compteur=compteur +1
goto eof)

Endlocal


Tu as un petit logiciel pour tester et debboguer tes batchs PowerBatch

Bonne journée
Avatar de l'utilisateur
heracles
Expert(e)
Expert(e)
 
Messages: 1199
Inscription: 02 Juin 2014 19:18
 

Re: Copier tous les fichier d'un même type en bat

Message le 09 Juin 2021 09:39

Bonjour.

Non justement je dis chacun son niveau car je trouve que c'est moi qui n'y comprend "rien", je me serai pas permis de dire l'inverse :wink: .

D'ailleurs j'ai voulu améliorer mon programme en faisant en sorte de ne pas demander un chiffre à l'utilisateur, mais que le programme teste lui-même d'abord pour 1, puis pour 2, puis pour 3, etc...

J'ai voulu fait ça pour m'entrainer à l'utilisation de la boucle for, mais pas moyen :( .

J'ai réussi à faire quelque chose, sans la boucle for, mais quand j'arrive à 1, il recommence à 2, donc refini à 1, et je tombe dans une boucle infinie...
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 

Re: Copier tous les fichier d'un même type en bat

Message le 09 Juin 2021 18:56

mlkgiosn a écrit:Bonjour.

Non justement je dis chacun son niveau car je trouve que c'est moi qui n'y comprend "rien", je me serai pas permis de dire l'inverse :wink: .


Ne t'inquiète pas alors, j'ai le même niveau que toi. :wink:

Mlkgiosn a écrit:D'ailleurs j'ai voulu améliorer mon programme en faisant en sorte de ne pas demander un chiffre à l'utilisateur, mais que le programme teste lui-même d'abord pour 1, puis pour 2, puis pour 3, etc...

J'ai voulu fait ça pour m'entrainer à l'utilisation de la boucle for, mais pas moyen :( .

J'ai réussi à faire quelque chose, sans la boucle for, mais quand j'arrive à 1, il recommence à 2, donc refini à 1, et je tombe dans une boucle infinie...



Je comprends ce que tu veux faire mais j'ai perdu la main sur le batch. Au fil des années, je me suis orienté sur la désinfection des PCs (je suis plus à l'aise sur l'éradiction des "virus".


Comme je l'ai dit, le mieux est de te renseigner sur le forum batch où il y a plus de spécialistes. A moins qu'une personne ayant des connaissances en batch sur ce forum.
heracles a écrit:Bonsoir Mlkgiosn,

Cela longtemps que je n'ai plus pratiqué le batch. C'est pas que je ne veux pas te répondre explicitement mais éventuellement tu peux poser ta problématique sur le forum Batcher



Bonne soirée
Avatar de l'utilisateur
heracles
Expert(e)
Expert(e)
 
Messages: 1199
Inscription: 02 Juin 2014 19:18
 

Re: Copier tous les fichier d'un même type en bat

Message le 15 Juin 2021 20:58

Désolé j'avais pas répondu, mais merci pour la réponse ;) .

Ça m'a l'air bien plus compliqué que je croyais en tous cas, pour faire un truc tout simple mdr.
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 396
Inscription: 09 Avr 2010 13:54
 



Sujets similaires

Message Changer icône d'un fichier
Bonjour.Je me demandais s'il est possible de changer l’icône d'un fichier via un programme ou autre, mais sans en faire de raccourci.À ma connaissance ça n'est pas possible mais je suis pas expert du domaine non plus...Merci 'avance.
Réponses: 1

Message affichage erroné du nom d'un fichier vidéo - besoin d'aide
BonjourJe vous explique mon problème : quand j'utilise mon player freebox en tant que lecteur réseau, le nom de plusieurs fichiers vidéo (en MKV) est affiché de manière "erronée" (si je puis m'exprimer ainsi) à l'écran.Ainsi, un fichier que j'ai intitulé "1 Le Concert" apparaît à ...
Réponses: 2

Message Logiciels pour copier des forums
Bonjour à tous,Cherche un logiciel permettant de créer une copie d'un forum, donc pas un site, mais un forum (avec ses sections, sous-sections, etc.), et ce afin de pouvoir le lire hors-ligne. Seuls les textes des messages suffisent, pas besoin des images.Pour les sites classiques, je sais comment p ...
Réponses: 4

Message comment faire pour copier un disque dur interne non SSD
SALUT TOUT LE MONDE comment faire pour copier un disque dur interne non SSD à l?identique sur un disque dur externe même capacité non SSD ....?J'ai essayer de faire tout sélectionner et copier mon disque dur interne D saves vers le disque dur externe de sauvegarde H mais il y a 2To environ à copie ...
Réponses: 9

Message Soucis Partage de fichier
Bonjour,je viens vers vous après de multitude d'essai pour regler mon problème qui est :J'utilise un ordinateur sous win 7 (le serveur, celui qui possede le dossier à partager) et le pc client est sous windows 10.-J'ai régler mon pare-feu windows avec les bonnes autorisations (Partage de fichiers et ...
Réponses: 0

Message fichier OBD
Salut les amis...Longue absence, qques soucis perso, ca va mieux !Content de vous revoir, les confinés !Bon, j'ai un vieux fichier .obd (et non pas odb), créé il y a longtemps avec l'office 97 (office binder)Pas moyen de l'ouvrir, pas moyen d'installer office 97 sur une machine virtuelle (en fait, p ...
Réponses: 10

Message VLC problème de lecture fichier mkv x264 ac3
Bonjour,suite à de nombreux problèmes avec VLC et après de longues recherches de solutions sur le net je me tourne vers vous car VLC bloque et crash à chaque fois que je veux lire un fichier MKV X264 AC3. Mon matériel:Asus ROG GL742VWprocesseur: intel core i5-6300 2.30GHz 4 coeurcarte graphique: nvi ...
Réponses: 14


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.