Supprimer des lignes d'un .srt grâce à un .bat - Shell/Batch - Programmation
Marsh Posté le 16-08-2012 à 12:19:48
Si j'utilise ça :
@echo off |
Le batch fonctionne, mais je voudrais obtenir un .srt distinct pour chaque .srt présent dans le dossier. Là, j'obtiens un seul "outputfile.srt" où sont collés les résultats de tous les srt qui se trouvent dans le dossier. Je ne sais pas par quoi remplacer ">outputfile.srt". J'ai essayé ">*.srt", marche pas
Thoughts?
Marsh Posté le 16-08-2012 à 13:33:39
Et pourquoi devrait on te permettre de virer du fichier le site de la team qui a fait la traduction?
A+,
Marsh Posté le 16-08-2012 à 13:57:42
Parce que dans le cas qui m'intéresse, les sous-titres viennent d'Opensubtitles. C'est pas vraiment ce que je considère comme la "team" ayant fait la traduction. C'est pas le nom du traducteur ou de sa team. J'ai moi-même uploadé des sous-titres sur ce site (sans avoir mis ces 2 lignes). C'est le site qui les rajoute, pas l'uploader, j'ai vérifié sur mes propres sous-titres. Surtout que la 2ème ligne à supprimer est une pub pour un software. Donc j'ai aucune gêne à les supprimer.
M'enfin, si tu préfères fermer le topic, fais-le, ça sera pas un drame.
Marsh Posté le 16-08-2012 à 14:05:34
Non non, pas de pb. Si c'est toi ou ta team qui fait le boulot, au contraire, tu as tous mes encouragements.
Le plus simple pour toi serait de récupérer un grep qui tourne sous DOS ou Windows, et de faire un grep -v
Si une solution perl ne t'embête pas, ça peut se faire aussi en perl facilement.
A+,
Marsh Posté le 16-08-2012 à 14:41:29
sinon, ceci devrait faire l'affaire:
Code :
|
EDIT: il y a plus simple:
Code :
|
A+,
Marsh Posté le 16-08-2012 à 16:12:27
Mais ça ne fonctionne pas
J'obtiens des fichiers vides. Si j'enlève "DEL %%F.old" de la dernière ligne, je vois les .srt.old vides également.
A tout hasard, j'ai Perl sur mon PC, mais je ne sais pas m'en servir J'ai cherché comment faire avec Perl tout à l'heure, pas trouvé le bon script.
Marsh Posté le 16-08-2012 à 18:11:23
Citation : Mais ça ne fonctionne pas |
chez moi, sous XP, ça marche
J'ai copié ton exemple du premier post dans 2 fichiers, toto.srt et tutu.srt, et ça fonctionne sans pb.
A+,
Marsh Posté le 16-08-2012 à 18:12:51
Citation : je vois les .srt.old vides également. |
Comme ils sont issus d'un simple rename, c'est que les .srt de départ étaient vides eux aussis
A+,
Marsh Posté le 17-08-2012 à 00:37:46
Je vais devenir fou. Je sais pas ce que je fais comme erreur. J'ai essayé plusieurs sous-titres différents.
J'ai copié ça dans un batch:
@echo off |
J'obtiens des fichiers vides à chaque fois Je vois la taille passer de xy Ko à 0 Ko.
Marsh Posté le 17-08-2012 à 12:38:45
Essaies avec le premier exemple de ce post, qui a la ligne
TYPE %%F.old | FINDSTR /V "www.unsite.org" | FINDSTR /V "MKV" >%%F
ça doit donner la même chose (marchait bien lui aussi sur mes tests) et de plus tu peux tracer en pas a pas:
Tu peux tester ceci pour voir ce qui se passe a chaque étape par exemple
Code :
|
A+,
Marsh Posté le 17-08-2012 à 13:06:54
J'avais aussi essayé la première méthode hier soir. J'obtiens un a.srt.step1 vide. Le a.srt a ce qui est écrit dans le premier post.
Je fais "Nouveau" > document texte. Je l'appelle a.srt et je copie ce qu'y a dans le premier post. Ca me donne un a.srt.step1 vide et le a.srt reste intact.
Mystère
Marsh Posté le 17-08-2012 à 13:42:35
Bon et sinon, que pensez vous de laisser tomber ce foutu langage batch qui doit être aussi vieux que Gilou et d'utiliser Powershell, qui est un peu plus contemporain et inclus d'office avec tous les PC sous Win 7 ?
Code :
|
Marsh Posté le 17-08-2012 à 14:24:09
Madadayo a écrit : J'avais aussi essayé la première méthode hier soir. J'obtiens un a.srt.step1 vide. Le a.srt a ce qui est écrit dans le premier post. |
C'est vraiment bizarre, car je ne fais rien d'autre sur ma bécane et ça marche.
A+,
Marsh Posté le 17-08-2012 à 14:28:39
Euh, ils seraient pas en read-only, tes fichiers de départ, ce qui expliquerait l'échec d'un rename et des opérations qui s'en suivent?
Parce que avec mon batch pas a pas, si le step1 est vide, c'est que le REN a échoué, et donc que le fichier ne peut pas être renommé.
A+,
Marsh Posté le 17-08-2012 à 14:58:20
L'attribut "Lecture seule" n'est pas coché. Je viens d'essayer sur mon autre PC. Ca me fait la même chose, un a.srt.step1 vide.
Enfin bon, c'est pas si important.
Marsh Posté le 17-08-2012 à 15:11:17
et moi, je pue du cul ?
Marsh Posté le 17-08-2012 à 15:15:39
Avec mon script en plusieurs étapes, tu as le .old vide (cas d'échec du REN) ou pas vide quand le step1 l'est?
parce que si le .old est pas vide, ça voudrait dire que c'est le TYPE %%F.old qui échoue chez toi pour une raison mystérieuse.
A+,
Marsh Posté le 17-08-2012 à 15:17:35
Harkonnen a écrit : et moi, je pue du cul ? |
il veut que le nom du fichier d'arrivée soit celui de départ et que ça soit lancé sur un match de *.srt...
A+,
Marsh Posté le 17-08-2012 à 15:24:07
oui bon, suffit juste de modifier le paramètre du Get-Content et de faire un del+rename après, mais ça n'en reste pas moins vrai qu'il serait grand temps de mettre le batch à la poubelle car des alternatives plus modernes et moins idiosyncratiques existent depuis un bail
Marsh Posté le 15-08-2012 à 12:28:32
Je suis sous Windows XP. Je souhaite supprimer la ligne contenant "www.unsite.org" et "MKV" dans un fichier .srt (fichier de sous-titres) en cliquant sur un bat. Le .srt se trouve dans le même dossier que le bat.
Le fichier .srt ressemble à ça
1
00:00:00,580 --> 00:00:04,937
blablalba
2
00:00:06,500 --> 00:00:11,096
blablabla
blblabla
3
00:00:12,000 --> 00:00:15,074
From www.unsite.org
4
00:00:17,580 --> 00:00:20,219
(....)
1626
02:02:47,000 --> 02:02:50,095
Using MKV
J'ai trouvé le batch ci-dessous en googlant, mais ça ne fonctionne pas. J'obtiens un fichier vide.
@echo off
type File.srt | findstr /v "www.unsite.org" | findstr /v "MKV" >outputfile.srt
Vous l'aurez deviné, j'y connais rien en programmation. L'un de vous aurait la solution ?
---------------
Script Anti-HS