Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R] Supprimer caractères dans le nom d'une liste de fichiers
Auteur Message
Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Bonjour à tous et à toutes,

J'aurais besoin de votre aide svp pour un script BATCH.

J'ai un répertoire APK dans lequel j'ai une 20aine de fichiers .apk.

Je voudrais supprimer (ou remplacer) les caractères suivants qui peuvent se trouver dans le nom des fichiers : é - _ & .

J'utilise actuellement ant renamer qui convient parfaitement, mais j'ai besoin d'un script BATCH qui effectue cette tâche afin de l'intégrer dans un programme.

Merci par avance pour vos retours.

Cordialement.



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Salut wassimbadreddine,

tu as pleins d'exemples de remplacement de caractères sur le forum !
Cherche un petit peu, réfléchis à ce que tu veux remplacer ou supprimer et n'hésites pas à faire une ébauche de code.
Nous serons là pour t'aider Wink

N'oublies pas de passer par cette section >> http://batch.xoo.it/f4-Presentations.htm Wink




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Salut stryk et merci pour ta réponse.

Pas de soucis je vais passer par la section présentation

Au sujet de ma demande, j'ai déjà effectué une recherche sur le forum et je n'ai rien trouvé de concluant ou alors j'ai mal cherché.

Merci par avance pour ton aide si tu as des liens à me proposer sur le forum qui se rattache à ma demande.

Par rapport à ce que je voudrais faire, c'est assez simple à expliquer.

Je voudrai supprimer ou remplacer par rien, certains caractères spéciaux dans le nom d'une 20aine de fichiers sans avoir à passer par une appli externe comme ant renamer.

Je vais tenter une ébauche quand même et on verra bien.

Merci.



Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
C'est vrai qu'il faut déjà savoir quoi chercher et je t'avoue que ce n'est pas forcément évident Wink

voici de quoi t'occuper, à adapter selon ton chemin et ce par quoi tu veux remplacer tes caractères !

Code:

@echo off
setlocal enabledelayedexpansion
set DIRECTORY=C:\Users\User\Desktop
for /f "tokens=*" %%$ in ('dir /b %DIRECTORY%') do (
    set TMP=%%$
    set TMP=!TMP:‚=XXX!
    set TMP=!TMP:-=XXX!
    set TMP=!TMP:_=XXX!
    set TMP=!TMP:^&=XXX!
    ren %DIRECTORY%\%%$ !TMP!
    )
pause





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Magnifique stryk !

C'est pile poil ce que je voulais !

Je vais pouvoir avancer dans mon programme et le proposer sur le forum.

En gros j'ai créé un script qui permet d'installer des applications android sur plusieurs smartphones connecter sur un pc en même temps Smile.

Je peux te demander un dernier service stp sans vouloir abuser.

Pourrais-tu rajouter des commentaires à ton code afin que je comprenne mieux ton cheminement ?

Merci par avance tu es super sympa !



Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Oui pas de souci, c'est vrai que je ne suis pas avare de commentaire en général Mr. Green

Code:

:: je place les commentaires avant la commande !
:: bon ça tu connais, c'est pour faire beau à l'affichage
@echo off
:: une option géniale qui permet d'utiliser les variables étendues dans une boucle for
setlocal enabledelayedexpansion
:: bon la c'est ton dossier
set DIRECTORY=C:\Users\User\Desktop
:: boucle for qui va lister le contenu du répertoire et va envoyer chaque nom de fichier dans la variable %%$
for /f "tokens=*" %%$ in ('dir /b %DIRECTORY%') do (
:: ici on envoie chaque itération de for dans une variable temporaire TMP
    set TMP=%%$
:: et puis là on remplace dans TMP la valeur é (,) par la chaine XXX, mais tu peux mettre ce que tu veux !
    set TMP=!TMP:‚=XXX!
    set TMP=!TMP:-=XXX!
    set TMP=!TMP:_=XXX!
:: là pareil sauf qu'avant le é commercial on place un accent circonflexe c'est pour que ça soit pris en compte comme du texte et non comme une commande
    set TMP=!TMP:^&=XXX!
:: et puis là on renomme l'ancien nom par le nouveau
    ren %DIRECTORY%\%%$ !TMP!
    )
pause





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Super merci !

Bon je m'arrache les cheveux pour le faire fonctionner mais je suis sûr que c'est le bon code Smile

Je suis sûr que tu sauras me dire où je fais erreur ...

=========================
- J'ai un répertoire K:\ApkMultiInstall dans lequel se trouve un sous répertoire \APK

- J'ai un fichier Automatisation.bat qui se trouve dans K:\ApkMultiInstall et qui contient le code suivant :

Code:

@echo off
:: titre de la fenêtre
title Installation d'APK sur plusieurs devices simultanement
:: Dimension de la fenêtre
mode con cols=80 lines=40
::Déclaration des variables couleurs
SET errormenu=NUL
SET couleurb=9F
SET couleure=0C
goto menuintro

:erreursaisie
color %couleure%
echo.
echo Votre saisie est incorrecte, veuillez recommencer svp.
PING 127.0.0.1 -n 3 -w 60000 >NUL
cls
goto menuintro

:menuintro
cls
set errormenu=:erreursaisie
color %couleurb%
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Veuillez choisir une actions :                                          º
echo º                                                                                    º
echo º 1 - Test de presence des terminaux                                º
echo º                                                                                    º
echo º 2 - Suppression des caractŠres sp‚ciaux                          º
echo º                                                                                    º
echo º                                                                                    º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.

:: Le commutateur /P devant set permet de récupérer la valeur saisie dans la variable action
set /p action= Que voulez vous effectuer ?
 
if %action% == 1 (goto devicedetect) else if %action% == 2 (goto supprcaractspec) else (goto erreursaisie)

:: Détection des terminaux
:devicedetect
@echo off
adb devices
pause
goto menuintro

:: Suppression des caractères spéciaux dans les fichiers APK
:supprcaractspec
@echo off
setlocal enabledelayedexpansion
set DIRECTORY=K:\ApkMultiInstall\APK
for /f "tokens=*" %%$ in ('dir /b %DIRECTORY%') do (
    set TMP=%%$
    set TMP=!TMP:‚=XXX!
    set TMP=!TMP:-=XXX!
    set TMP=!TMP:_=XXX!
    set TMP=!TMP:^&=XXX!
    ren %DIRECTORY%\%%$ !TMP!
    )
pause
goto menuintro



Voici la liste des applications qui se trouvent dans le répertoire \APK :

Services Google Play-V20151117.apk
Super Backup SMS & Contacts-V20150924.apk
s_Air Canada-V0.9.14-production.apk
s_Air France-V1.11.0.apk
s_Amex FR-V3.2.6.apk
s_BNP PARIBAS-V3.8.0.apk
s_Boursorama Banque-V4.0.8.apk
s_ComfortDelGro Taxi Booking App-V2.0.0.apk
s_Courrier Picard-V2.2.9.apk
s_Cr‚dit Agricole Ma Banque-V20151125.apk
s_CWT To Go-V11.0.1.apk
s_Deezer Music-V20151125.apk
s_Fortuneo banque-V20151005.apk
s_HSBC v1.5.11.2.apk
s_L'Appli Soci‚t‚ G‚n‚rale-V20150928.apk
s_La Voix du Nord-V2.2.8.apk
s_LaFourchette - Restaurants-V7.7.8.apk
s_Le Figaro.fr, l'info en direct-V20151102.apk
s_Le Monde-V20151202.apk
s_Les Echos-V20151116.apk
s_Mes Comptes - LCL pour mobile-V3.0.1.apk
s_My Airport-A‚roports de Paris-V8.11.apk
s_My Data Manager-V20151104.apk
s_Ouest France-V20151130.apk
s_PagesJaunes - recherche locale-V7.2.13.0.apk
s_Qatar Airways-V6.2.apk
s_SNCF Transilien-V2.8.1.apk
s_Super Backup SMS & Contacts-V20150912.apk
s_TAXIS G7 Abonn‚s-V2.1.1.apk
s_TAXIS G7 Particulier - Paris-V3.0.apk
s_TouchDown for Smartphones-V8.3.00058.apk
s_Touchdown Licence.apk
s_ViaMichelin - Iti et Cartes-V3.7.0.4.apk
s_Waze Social GPS Maps & Traffic-V20151125.apk
s_WPS Office + PDF-V20150922.apk
s_XE Currency-V20151113.apk
TouchDown for Smartphones-V8.3.00058.apk
Touchdown Licence.apk
Worx Home for Samsung v8.6.1.apk


En résumé, je voudrais en choisissant l'action 2 via le menu intro que les caractères suivants soient supprimés :

é
-
_
.
(espace)
&
'
+
,



Mais quand je teste le script, j'obtiens un message d'erreur. "La syntaxe de la commande n’est pas correcte."

Merci par avance pour ton aide Smile



Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
La cause de l'erreur est en fait le nom du fichier !

Par exemple :
s_Air Canada-V0.9.14-production.apk

S'il détecte un caractère spécial qui n'est pas dans la liste il affiche l'erreur !



Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Je te propose ça avec une réduction en prime :

Code:
:: [...]
:: Suppression des caractères spéciaux dans les fichiers APK
:supprcaractspec
@echo off
setlocal enabledelayedexpansion
set DIRECTORY=K:\ApkMultiInstall\APK
for /f "tokens=*" %%$ in ('dir /b %DIRECTORY%') do (
    set TMP=%%$
   for %%A in (.apk s_ è é , - _ . ^& ' + ,) do set TMP=!TMP:%%A=!
   set TMP=!TMP: =!
    ren %DIRECTORY%\%%$ !TMP!.apk
    )
pause
goto menuintro


J'enlève le _s car je pense qu'il risque d'être gênant.
Et j'enlève le .apk pour le remettre en suite pour ne pas avoir de problème en enlevant le '.'.



Dernière édition par TSnake41 le Mer 9 Déc 2015 - 23:25; édité 1 fois

______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Enjoy Okay

Code:

@echo off
:: titre de la fenêtre
title Installation d'APK sur plusieurs devices simultanement
:: Dimension de la fenêtre
mode con cols=80 lines=40
::Déclaration des variables couleurs
SET errormenu=NUL
SET couleurb=9F
SET couleure=0C
goto menuintro

:erreursaisie
color %couleure%
echo.
echo Votre saisie est incorrecte, veuillez recommencer svp.
PING 127.0.0.1 -n 3 -w 60000 >NUL
cls
goto menuintro

:menuintro
cls
set errormenu=:erreursaisie
color %couleurb%
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Veuillez choisir une actions :                                          º
echo º                                                                                    º
echo º 1 - Test de presence des terminaux                                º
echo º                                                                                    º
echo º 2 - Suppression des caractŠres sp‚ciaux                          º
echo º                                                                                    º
echo º                                                                                    º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.

:: Le commutateur /P devant set permet de récupérer la valeur saisie dans la variable action
set /p action= Que voulez vous effectuer ?
 
if %action% == 1 (goto devicedetect) else if %action% == 2 (goto supprcaractspec) else (goto erreursaisie)

:: Détection des terminaux
:devicedetect
@echo off
adb devices
pause
goto menuintro

:: Suppression des caractères spéciaux dans les fichiers APK
:supprcaractspec
@echo off
setlocal enabledelayedexpansion
set DIRECTORY=K:\ApkMultiInstall\APK
for /f "tokens=*" %%X in ('dir /b %DIRECTORY%') do (
    set TMP=%%~nX
    set TMP=!TMP:‚=!
    set TMP=!TMP:-=!
    set TMP=!TMP:_=!
    set TMP=!TMP:.=!
    set TMP=!TMP: =!
    set TMP=!TMP:^&=!
    set TMP=!TMP:'=!
    set TMP=!TMP:+=!
    set TMP=!TMP:,=!
    ren "%DIRECTORY%\%%X" !TMP!%%~xX
    )
pause
goto menuintro


EDIT: pfff deux réponses avant que je valide la mienne, bravo les gars Okay




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Vous êtes géniaux les mecs !! merci Smile

Bon je vais devoir recréer un compte sur le forum avec un pseudo, je préfère et ensuite je partage mon script



Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
wassimbadreddine a écrit:
Vous êtes géniaux les mecs !! merci Smile

Bon je vais devoir recréer un compte sur le forum avec un pseudo, je préfère et ensuite je partage mon script


Les doubles comptes sont interdits demande à un administrateur de changer ton pseudo Wink
D'ailleurs si un Admin voit mon message je voulais me renommer en Ozachi Mort de Rire




______________________________________________________
C'est en forgeant que l'on devient un forgeron Razz
Visiter le site web du posteur
Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Non non pas de double compte Smile, j'aurais demandé la suppression de celui là.

Mais si un Admin passe par là, et qu'il est possible de remplacer mon pseudo, je voudrais bien Orion Smile.



Répondre en citant
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 
Citation:
Mais si un Admin passe par là, et qu'il est possible de remplacer mon pseudo, je voudrais bien Orion Smile.


Envoie un MP a Laddy !

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Message [R] Supprimer caractères dans le nom d'une liste de fichiers 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch