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

Résolu
SAITO_ Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   -
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
SAITO_
 
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > SAITO_
 
Si tu veux que je puisse t'aider davantage, il faut me fournir les fichiers pour que je puisse faire des tests.
0