Bonjour les développeurs.

Le script fonctionne par glisser/déposer pour supprimer les lignes vides et un mot spécifique.

J'ai combiné ce script à celui qui me permet de désigner le fichier à traiter grâce au navigateur.

Cependant j'ai 2 problèmes:

1. Le fichier de sortie ne nomme pas le fichier traité et son extension, il l'affiche ainsi: cleaned_ donc je dois l'ajouter manuellement.
2. Le fichier de sortie est créé dans le dossier du batch, or je voudrais que cela se fasse dans le dossier du fichier traité.

Voici le script: (navigateur + script qui supprime les lignes vides et un mot spécifique)

Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
set dialog="about:<input type=file id=FILE><script>FILE.click();new ActiveXObject
set dialog=%dialog%('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);
set dialog=%dialog%close();resizeTo(0,0);</script>"
echo.
echo Recherchez et s‚lectionnez un fichier texte puis cliquez sur Ouvrir
for /f "tokens=* delims=" %%p in ('mshta.exe %dialog%') do set "file=%%p"
echo selected  file is : "%file%"
 
echo Chemin et fichier actuels : "%file%"
echo.
echo Le batch accepte le nom du fichier avec espace
echo.
echo ( Les extensions sont: .txt et .bat )
echo.
echo ( Le mot est sensible … la casse "Mot" et "mot" sont diff‚rents )
echo.
set /p "mot=Tapez le mot … supprimer de chaque ligne: "
type nul > "cleaned_%~nx1"
for /f "delims=" %%a in ('type "%file%" ^| findstr /v /r /c:"[ \t]%mot%[ \t]" /c:"[ \t]%mot%$" /c:"^%mot%[ \t]" /c:"^%mot%$"') do >>"cleaned_%~nx1" echo;%%a
 
echo.
pause

Merci de bien vouloir m'aider.