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

Résolu/Fermé
SAITO_ Messages postés 17 Date d'inscription jeudi 27 février 2020 Statut Membre Dernière intervention 4 mars 2020 - Modifié le 27 févr. 2020 à 14:57
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 - 29 févr. 2020 à 08:17
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
A voir également:

1 réponse

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 27 févr. 2020 à 21:10
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




1
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
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > SAITO_
29 févr. 2020 à 08:17
Si tu veux que je puisse t'aider davantage, il faut me fournir les fichiers pour que je puisse faire des tests.
0