
for file in `ls *`; do mkdir $file.dir; mv $file $file.dir; done;
Martopioche a écrit:
D'une c'est pas possible en une passe car deux fichiers (un répertoire est un fichier) ne peuvent être nommés pareil. tu peux commencer par un :
Code :for file in `ls *`; do mkdir $file.dir; mv $file $file.dir; done;
ben si on peut tres bien avoir un dossier nomé "essai" et un fichier " nomé "essai" aussi.... Tout comme on peut avoir 2 fichiers només pareil mais pas de même nature.arnac a écrit:ben si on peut tres bien avoir un dossier nomé "essai" et un fichier " nomé "essai" aussi.... Tout comme on peut avoir 2 fichiers només pareil mais pas de même nature.
@echo off for %%i in (*.*) do ( if not %%i==RN.bat ( rename %%i %%i.tmp md %%i copy %%i.tmp %%i\%%i del %%i.tmp ) )


Tu peux expliquer ce que tu veux dire, là ?essai.jpeg et essai.mp3 ne sont pas de même nature et peuvent porter le même nom dans le même dossier.
gcc a écrit:
Tu n'as pas dit quel langage tu voulais utiliser ?
Si tu veux le faire en batch ça doit donner quelque chose du genre
Code :@echo off for %%i in (*.*) do ( if not %%i==RN.bat ( rename %%i %%i.tmp md %%i copy %%i.tmp %%i\%%i del %%i.tmp ) )
Ici, le fichier batch s'appelle RN.bat, et il doit se trouver dans le même répertoire que les fichiers à manipuler.
Par contre, tes fichiers ont probablement une extension.
Et donc tes sous dossiers vont eux aussi se retrouver avec un nom qui aura une extension.
Ce n'est peut être pas exactement ce que tu veux

arnac a écrit:
essai.jpeg et essai.mp3 ne sont pas de même nature et peuvent porter le même nom dans le même dossier.
Et ce que je veux c'est qu'un fichier (ex: essai.mp3) nous permette de dire qu'il faut cré un dossier nomé "essai" ( puisque le nom du fichier est essai) puis ensuite déplacer le fichier essai.mp3 dans ce nouveau dossier "essai"


Si, bien sûrarnac a écrit:
Gcc tu ne peux pas déplacer le fichier plutôt que copier coller ?
gcc a écrit:Si, bien sûrarnac a écrit:
Gcc tu ne peux pas déplacer le fichier plutôt que copier coller ?
Mon windows en ligne de commande est un peu rouillé ...
Pour ce qui est des espaces dans les noms de fichier, c'est comme ne ligne de commande, il suffit que tu rajoutes des guillemets autour et c'est bon.


@echo off setlocal enabledelayedexpansion for %%i in (*.*) do ( if not %%i==RN.bat ( set rep=%%i set rep1=!rep:~0,-4! rename "%%i" "%%i.tmp" md "!rep1!" move "%%i.tmp" "!rep1!\%%i" ) )
gcc a écrit:
Tu devrais avoir tout avec ça
Code :@echo off setlocal enabledelayedexpansion for %%i in (*.*) do ( if not %%i==RN.bat ( set rep=%%i set rep1=!rep:~0,-4! rename "%%i" "%%i.tmp" md "!rep1!" move "%%i.tmp" "!rep1!\%%i" ) )
Martopioche a écrit:
Dites les gars, quit à écrire un script, pourquoi vous le mettez pas dans le path, ce qui éviterai de l'avoir la ligne de vérification RN.bat, et autant paramétrer le répertoire à traiter pour l'appeler de n'importe où, non ?
gcc a écrit:Martopioche a écrit:
Dites les gars, quit à écrire un script, pourquoi vous le mettez pas dans le path, ce qui éviterai de l'avoir la ligne de vérification RN.bat, et autant paramétrer le répertoire à traiter pour l'appeler de n'importe où, non ?
Et le
for %%i in (*.*)
tu le traites comment, de n'importe où ?
Sujets Similaires: 