[BAT] Verification d'une chaine de caractére dans un fichier txt [Résolu/Fermé]

Signaler
Messages postés
17
Date d'inscription
jeudi 27 février 2020
Statut
Membre
Dernière intervention
4 mars 2020
-
Messages postés
13546
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
19 juin 2021
-
Bonjour a tous,

J'ai un probléme concernant la vérification de la présence d'une chaine de caractére (nom de fichiers) dans un .txt qui sauvegarde le nom des fichiers .pdf une fois modifier pour faire la comparaison.

voici le script

@echo off
cd D:\Users\xxxxxx\Desktop\Outils STAGE Informatique\partage
setlocal enabledelayedexpansion
for %%a in (*.pdf) do (
echo %%~na
 for /f  "tokens=1 delims= " %%b in ('echo %%~ta') do (
   set "$date=%%b"
   set "$date=!$date:/=-!"
 findstr /m %%~na.pdf > "D:\Users\xxxxxx\Desktop\Outils STAGE Informatique\Script\BDD.txt"
 if %errorlevel%==0 (
 echo fichier deja renomme
 ) else (
 ren "%%a" "%%~na_!$date!.pdf" 
 echo %%~na_!$date!.pdf >> "D:\Users\xxxxxx\Desktop\Outils STAGE Informatique\Script\BDD.txt"))
 )

pause

1 réponse

Messages postés
13546
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
19 juin 2021
4 400
Bonjour,

Le seul problème que je vois c'est la redirection dans la ligne contenant le FINDSTR, je pense qu'il suffit de l'enlever pour que ça fonctionne.

Voilà comment j'aurais écrit ce script :

@echo off
set bdd=%USERPROFILE%\Desktop\Outils STAGE Informatique\Script\BDD.txt
cd /d %USERPROFILE%\Desktop\Outils STAGE Informatique\partage
setlocal enabledelayedexpansion
for %%a in (*.pdf) do (
echo %%~na
for /f "tokens=1 delims= " %%b in ('echo %%~ta') do (
set "$date=%%b"
set "$date=!$date:/=-!"
findstr /m %%~nxa %bdd% && echo fichier deja renomme || (ren "%%a" "%%~na_!$date!.pdf" & echo %%~na_!$date!.pdf >> %bdd%)
)
)

pause





“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

J'ai un probléme il me renomme uniquement un seul fichier, je sais pas pourquoi j'ai verifier les boucles, elle sont bien fermé et me paraissent correctes...

j'ai modifier un peut le scripts:

@echo off

cd D:\Users\N. LAPUJADE\Desktop\Outils STAGE Informatique\partage
setlocal enabledelayedexpansion
for %%a in (*.pdf) do (
for /f "tokens=1 delims= " %%b in ('echo %%~ta') do (
set "$date=%%b"
set "$date=!$date:/=-!"

findstr /m %%~na "D:\Users\N. LAPUJADE\Desktop\Outils STAGE Informatique\Script\BDD.txt" && echo fichier deja renomme || (ren "%%a" "%%~na_!$date!.pdf" & echo %%~na_!$date!.pdf >> "D:\Users\N. LAPUJADE\Desktop\Outils STAGE Informatique\Script\BDD.txt"))
)


pause
Messages postés
13546
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
19 juin 2021
4 400 > SAITO_
Si tu veux que je puisse t'aider davantage, il faut me fournir les fichiers pour que je puisse faire des tests.