Exécution automatique de commande, Faire un script qui permet d'automatiser une tâche récurrente |
Bienvenue invité ( Connexion | Inscription )
Exécution automatique de commande, Faire un script qui permet d'automatiser une tâche récurrente |
13 Nov 2015, 14:13
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
Bonjour
J'utilise actuellement 2 lignes de commande sur mac afin de convertir des fichiers audio en MP3 en MP2. Aujourd'hui la commande est lancée via la terminal et je suis obligée de le faire fichier par fichier. J'aimerais pouvoir exécuter un script ou un automator afin de pouvoir convertir plusieurs fichier en même temps en n'ayant pas à faire à chaque fois les commandes. Voici la commande : Le dossier où se trouve tous les fichiers en MP3 se trouve sur le bureau. Entree.mp3 est le nom que je donne au fichier de départ et sortie.mp2 est le fichier converti. "cd /Users/admin/desktop/mp3-mp2 ffmpeg -y -i entree.mp3 -ab 48k -ar 32k sortie.mp2 xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 sortie.mp2" J'aimerais pouvoir mettre à la place de "entree.mp3" le nom de tous les fichiers qui se trouve dans le dossier et qu'ils ressortent toutes avec le même nom mais en .mp2 Est ce qu'une personne à une idée? merci |
|
|
13 Nov 2015, 14:18
Message
#2
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 449 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
Code for old in *.mp3; do
new=`echo "$old" | perl -pe "s/.mp3$/.mp2/"` echo "$old -> $new" done -------------------- I think therefore I Mac
|
|
|
13 Nov 2015, 15:07
Message
#3
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
et comment faire pour automatiser le tout?
Il faut enregistrer le fichier sous quel format? |
|
|
13 Nov 2015, 15:15
Message
#4
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 449 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
C’est juste un exemple de shell script qui prend les fichiers .mp3 du répertoire courant et crée le nom équivalent en .mp2 ; il faut y rajouter tes commandes.
-------------------- I think therefore I Mac
|
|
|
13 Nov 2015, 15:18
Message
#5
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
et où dans le script j'intègre ma commande?
|
|
|
13 Nov 2015, 16:07
Message
#6
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Je ne peux tester car ffmpeg n'est pas disponible sur ma machine mais à priori enregistrer ce qui suit en tant que script AppleScript devrait fonctionner.
--[SCRIPT] --set dossierDeTravail to POSIX file "/Users/admin/desktop/mp3-mp2" set dossierDeTravail to POSIX path of ((path to desktop as text) & "mp3-mp2:") tell application "System Events" set lesFichiers to path of disk items of folder dossierDeTravail whose name ends with ".mp3" end tell repeat with unFichier in lesFichiers set unNomNu to text 1 thru -5 of (unFichier as text) set qfSource to quoted form of POSIX path of unFichier set qfDest to quoted form of POSIX path of (unNomNu & ".mp2") set theCommand to "ffmpeg -y -i " & qfSource & " -ab 48k -ar 32k " & qfDest & " xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 " & qfDest --log theCommand do shell script theCommand end repeat --[/SCRIPT] Yvan KOENIG (VALLAURIS, France) vendredi 13 novembre 2015 16:00:45 |
|
|
13 Nov 2015, 16:35
Message
#7
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 449 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
et où dans le script j'intègre ma commande? Code cd /Users/admin/desktop/mp3-mp2
for entree in *.mp3; do sortie=`echo "$entree" | perl -pe "s/.mp3$/.mp2/"` ffmpeg -y -i $entree -ab 48k -ar 32k $sortie xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 $sortie done -------------------- I think therefore I Mac
|
|
|
17 Nov 2015, 16:20
Message
#8
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
Je ne peux tester car ffmpeg n'est pas disponible sur ma machine mais à priori enregistrer ce qui suit en tant que script AppleScript devrait fonctionner. --[SCRIPT] --set dossierDeTravail to POSIX file "/Users/admin/desktop/mp3-mp2" set dossierDeTravail to POSIX path of ((path to desktop as text) & "mp3-mp2:") tell application "System Events" set lesFichiers to path of disk items of folder dossierDeTravail whose name ends with ".mp3" end tell repeat with unFichier in lesFichiers set unNomNu to text 1 thru -5 of (unFichier as text) set qfSource to quoted form of POSIX path of unFichier set qfDest to quoted form of POSIX path of (unNomNu & ".mp2") set theCommand to "ffmpeg -y -i " & qfSource & " -ab 48k -ar 32k " & qfDest & " xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 " & qfDest --log theCommand do shell script theCommand end repeat --[/SCRIPT] Yvan KOENIG (VALLAURIS, France) vendredi 13 novembre 2015 16:00:45 Bonjour cela fonctionne bien avec apple script mais il me créer un fichier MP2 à zéro kilo. Pourtant, il y a aucune erreur dans le script à l'exécution. |
|
|
20 Nov 2015, 13:56
Message
#9
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
personne a une idée pour les fichiers créés à zéro KO?
|
|
|
20 Nov 2015, 15:24
Message
#10
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Étant curieux, après avoir lu votre dernier message, j'ai téléchargé et installé ffmpeg.
Ayant constaté que les fichiers de commande Unix que j'avais installé dans /usr/bin/ avaient été déménagés lors de l'installation de El Capitan, j'ai créé un dossier /usrBin/ dans lequel j'ai installé ces commandes baladeuses. Du coup j'ai été conduit à légèrement modifier le script qui est devenu : --[SCRIPT] --set dossierDeTravail to POSIX file "/Users/admin/desktop/mp3-mp2" set dossierDeTravail to POSIX path of ((path to desktop as text) & "mp3-mp2:") tell application "System Events" set lesFichiers to path of disk items of folder dossierDeTravail whose name ends with ".mp3" end tell repeat with unFichier in lesFichiers set unNomNu to text 1 thru -5 of (unFichier as text) set qfSource to quoted form of POSIX path of unFichier set qfDest to quoted form of POSIX path of (unNomNu & ".mp2") set theCommand to "/Users/Admin/Bin/ffmpeg -y -i " & qfSource & " -ab 48k -ar 32k " & qfDest & " xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 " & qfDest --log theCommand do shell script theCommand end repeat --[/SCRIPT] Lorsque je l'ai exécuté, le fichier mp3 original de 1 Mo (exactement 1 016 028 octets) a donné naissance à un fichier mp2 de 818 Ko (exactement 817560 octets). Je n'ai aucune idée de quelles applications peuvent exploiter ce format et du coup je ne sais pas si la conversion a été correctement effectuée. Un double clic a ouvert iTunes qui a envoyé quelques lignes dans Console: 2015/11/20 15:14:50,993 iTunes[1292]: [15:14:50.993] FigFileGetStorageMediumForCFURL signalled err=2 (errno) (statfs failed) at /Library/Caches/com.apple.xbs/Sources/CoreMedia_frameworks/CoreMedia-1731.15.20/Sources/Platform/Darwin/DarwinFile.c line 697 2015/11/20 15:14:50,995 iTunes[1292]: [15:14:50.995] FigMPEG2ParserInjectData signalled err=-12971 (kFigMPEG2ParserError_CorruptStream) (MPEG2 Stream not program or transport) at /Library/Caches/com.apple.xbs/Sources/CoreMedia/CoreMedia-1731.15.20/Prototypes/FigMPEG2Parser/FigMPEG2Parser.c line 439 2015/11/20 15:14:50,995 iTunes[1292]: [15:14:50.995] MPEGFormatReaderCreateFromStreamForPreciseTiming signalled err=-12848 (kFigFormatReaderError_ParsingFailure) (can't get accurate initial offset) at /Library/Caches/com.apple.xbs/Sources/CoreMedia/CoreMedia-1731.15.20/Prototypes/FormatHandlers/FigFormatReader_MPEG.c line 6524 2015/11/20 15:14:50,999 iTunes[1292]: [15:14:50.999] mv_CheckIfAudioPlayable signalled err=-12957 (kFigMediaValidatorError_AudioCodecNotSupported) (audio codec (null) not found) at line 2379 Yvan KOENIG (VALLAURIS, France) vendredi 20 novembre 2015 15:17:39 J'ai remplacé UsrBin par Users/Admin/Bin Ce message a été modifié par KOENIG Yvan - 23 Nov 2015, 21:12. |
|
|
21 Nov 2015, 09:01
Message
#11
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Plutôt que usrBin, je les placerais dans /Users/Admin/bin, voire même dans /Users/Admin/Desktop/mp3-mp2/bin là où aucune mise à jour n'ira les déloger...
J-P Ce message a été modifié par Jaypee - 21 Nov 2015, 09:01. |
|
|
21 Nov 2015, 09:30
Message
#12
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Merci pour ce judicieux conseil.
Yvan KOENIG (VALLAURIS, France) samedi 21 novembre 2015 09:23:32 |
|
|
23 Nov 2015, 15:30
Message
#13
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
Bonjour
Merci pour l'information. J'ai testé mais le fichier reste toujours à zéro KO. La commande manuelle sous terminal fonctionne bien mais en script non. Je dispose de la version 10.8.5 pour des raisons de compatibilité logicielle. FFMPEG est installé dans le dossier /usr/bin Merci de votre aide car là je n'arrive pas à trouver la solution mac.png ( 709.32 Ko ) Nombre de téléchargements : 5 |
|
|
23 Nov 2015, 15:34
Message
#14
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Êtes vous sur que les mp3 comportent plus de zéro octet ?
Yvan KOENIG (VALLAURIS, France) lundi 23 novembre 2015 15:26:48 |
|
|
23 Nov 2015, 16:04
Message
#15
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
Ce sont des MP3 qui font de manière général entre 600 KO et 2MO maxi
Dans le dossier j'ai is des MP3 en 600KO |
|
|
23 Nov 2015, 21:05
Message
#16
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Le chemin de la commande ne doit-il pas être déclaré en POSIX path comme tous les autres fichiers?
J-P |
|
|
23 Nov 2015, 21:16
Message
#17
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Dans le script posté le chemin de la commande est un POSIX path.
Profitant de ce que je vérifiait cela, j'y ai remplacé UsrBin par Users/Admin/Bin. Yvan KOENIG (VALLAURIS, France) lundi 23 novembre 2015 21:08:58 |
|
|
24 Nov 2015, 09:05
Message
#18
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
Bonjour
j'ai finalement trouvé la solution il fallait que je rajoute les droits d'accès sur le dossier mp3-mp2 sur le bureau Merci beaucoup pour votre aide |
|
|
24 Nov 2015, 16:23
Message
#19
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
et où dans le script j'intègre ma commande? Code cd /Users/admin/desktop/mp3-mp2 for entree in *.mp3; do sortie=`echo "$entree" | perl -pe "s/.mp3$/.mp2/"` ffmpeg -y -i $entree -ab 48k -ar 32k $sortie xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 $sortie done Je reviens sur cette commande. J'aimerais savoir sous quel format l'enregistrer pour le rendre exécutable sans le coller dans la fenêtre du terminal. |
|
|
24 Nov 2015, 16:29
Message
#20
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217 |
Je vous ai donné un script AppleScript exploitant la commande Shell. Que voulez-vous de plus ?
Yvan KOENIG (VALLAURIS, France) mardi 24 novembre 2015 16:22:08 |
|
|
24 Nov 2015, 16:36
Message
#21
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
J'ai 2 mac, un en version el capitain où votre script fonctionne parfaitement et j'ai un autre mac en version 10.8.5 où le script me créé toujours des fichiers à 0 kilo malgré les permission vérifiées.
et quand je colle texto la commande : cd /Users/admin/desktop/mp3-mp2 for entree in *.mp3; do sortie=`echo "$entree" | perl -pe "s/.mp3$/.mp2/"` ffmpeg -y -i $entree -ab 48k -ar 32k $sortie xattr -wx com.apple.FinderInfo 4D50454754564F440100008A00AF000000000000000000000000000000000000 $sortie done dans le terminal, il me créé bien les fichiers comme il le faut. Donc je cherche à comprendre pourquoi sur l'un cela fonctionne et l'autre non. |
|
|
Guest_JacqR_* |
24 Nov 2015, 18:09
Message
#22
|
Guests |
Bonjour,
Je reviens sur cette commande. J'aimerais savoir sous quel format l'enregistrer pour le rendre exécutable sans le coller dans la fenêtre du terminal. Dans l'application "TextEdit": Si votre préférence par défaut est un document RTF, sélectionnez le menu "Convertir au format Texte' dans le menu "Format". Tapez ceci dans la première ligne du document Code #!/bin/bash Copie/colle votre script dans la deuxième ligne du document. Enregistre-le avec l'encodage "Unicode (UTF-8)", et avec l'extension .sh Pour le rendre exécutable par vous, tapez ceci dans le Terminal : Code chmod u+x Tapez une espace. Dans le Finder, sélectionnez votre fichier (le script enregistré), glisse-le et déposé-le dans la fenêtre du Terminal. Pressez la touche Entrée. C'est tout. |
|
|
25 Nov 2015, 10:50
Message
#23
|
|
Nouveau Membre Groupe : Membres Messages : 11 Inscrit : 13 Nov 2015 Membre no 197 123 |
Merci beaucoup de votre aide cela fonctionne pour les 2 mac
|
|
|
Nous sommes le : 25th April 2024 - 12:55 |