IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

Aide pour traduire un Batch en Shell (explication du batch)


Sujet :

Shell et commandes POSIX

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 36
    Points : 36
    Points
    36
    Par défaut Aide pour traduire un Batch en Shell (explication du batch)
    Bonjour à tous,
    3 eme fois que je relance ce sujet car au début je croyais que l'équivalent du batch pour Apple était le XCode après le AppleScript maintenant le Shell
    Donc j’espère être au bon endroit !
    J'ai un service à vous demander, quelqu'un pourrait me traduire çà en Shell ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set "$ext=jpg gif mpg tif pnj"
     
    for %%a in (%$ext%) do xcopy /s /c /h /i /r /y "%systemdrive%\users\%username%\pictures\*.%%a" "photos\"
    for %%a in (%$ext%) do xcopy /s /c /h /i /r /y "%systemdrive%\users\%username%\desktop\*.%%a" "photos\" 
    for %%a in (%$ext%) do xcopy /s /c /h /i /r /y "%systemdrive%\users\%username%\Links\*.%%a" "photos\"
    ATTRIB Photos +h 
    EXIT
    Donc ce programme veut dire ceci :

    Copier tous les fichiers présents dans les photos ou sur le bureau qui ont pour extension .jpg .gif .mpg .tif .pnj sur la clef USB sur laquelle on lance le programme
    et créer sur la clef usb un dossier photo avec toutes les photos copiées
    puis cacher le dossier photos
    et Fermer la fenêtre

    Aussi simple que ça en tous cas sur PC !
    Merci d'avance amis d'apple

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Voici quelque chose d'approchant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ext="jpg gif mpg tif pnj JPG GIF MPG TIF PNJ"
    for a in $ext; do
        cp ~/Desktop/*.$a photos/
        cp ~/Pictures/*.$a photos/
    done
    ɹǝsn *sıɹɐlos*

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 36
    Points : 36
    Points
    36
    Par défaut
    Merci beaucoup pour t'a réponse.
    Je pense donc que tu l'as essayé donc qu'il fonctionne mais
    je n'y connais rien en OS donc en quoi dois-je l’enregistrer
    pour l’ouvrir ensuite sur un mac ?

    Merci d'avance

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Non, je ne l'ai pas testé et je n'ai pas de Mac non plus.

    Le nom ou l'extension n'ont pas vraiment d'importance sous Unix, contrairement à Windows.

    Il faut l'enregistrer au format texte, le nommer par exemple copie-images.sh et ne pas oublier de le rendre exécutable (chmod +x copie-images.sh).
    ɹǝsn *sıɹɐlos*

  5. #5
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par clémsdos Voir le message
    Merci beaucoup pour t'a réponse.
    Je pense donc que tu l'as essayé donc qu'il fonctionne mais
    je n'y connais rien en OS donc en quoi dois-je l’enregistrer
    pour l’ouvrir ensuite sur un mac ?

    Merci d'avance


    sur un mac il faut juste accèder au shell et faire comme indiqué par jlliagre (MacoSX étant lui aussi un Unix un freebsd modifié pour etre précis)
    on doit pouvoir le faire aussi dans l'interface tout graphique mais là je sais pas t'indiquer.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Voici quelque chose d'approchant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ext="jpg gif mpg tif pnj JPG GIF MPG TIF PNJ"
    for a in $ext; do
        cp ~/Desktop/*.$a photos/
        cp ~/Pictures/*.$a photos/
    done
    Attention! Ce script (non testé) copie les fichiers dans un dossier photos du répertoire courant!

    Pour les copier sur une clé USB, il faut... changer des trucs (pas trop le temps...).

    Comme il peut y avoir plusieurs clés USB connectées, il paraît difficile que le programme trouve la bonne tout seul...

    Les clés ainsi que tous les disques durs (ou autres volumes) sont montés dans /Volumes.

    Je regarde ce midi ou ce soir... devant un mac...

    En attendant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ext="jpg gif mpg tif pnj JPG GIF MPG TIF PNJ"
    mkdir "photos"
    for a in $ext; do
        cp ~/Desktop/*.$a photos/
        cp ~/Pictures/*.$a photos/
    done
    Citation Envoyé par frp31 Voir le message
    sur un mac il faut juste accèder au shell
    C'est-à-dire lancer l'application Terminal (qui, si ma mémoire est bonne, se trouve dans /Applications/Utilitaires (chez moi, il est dans le dock depuis belle lurette!)).

    Pour rendre le fichier exécutable, faire, une seule fois, ce qui suit:
    * taper dans le shell de la fenêtre Terminal chmod +x avec espace au bout et SANS return,
    * draguer le fichier vers la fenêtre Terminal
    * et ensuite seulement taper la touche RETURN,
    ce qui devrait donner quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chmod +x /chemin/vers/le/fichier/texte/copie-images.sh
    Pour utiliser ce programme:
    * lancer l'application Terminal
    * taper cd avec espace au bout et SANS return,
    * draguer la clé USB (ou l'un de ses dossiers si tu veux) vers la fenêtre Terminal
    * taper la touche RETURN
    * draguer le fichier "copie-images.sh" vers la fenêtre Terminal
    * taper la touche RETURN

  7. #7
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Attention! Ce script (non testé) copie les fichiers dans un dossier photos du répertoire courant!
    C'est aussi ce que faisait aussi le batch original. A noter aussi que le script ne copie les fichiers que s'il existe un dossier "photos" dans le répertoire courant.

    Pour les copier sur une clé USB, il faut... changer des trucs (pas trop le temps...).
    Le plus simple est de mettre ce script à la racine de la clef USB et d'ajouter la première ligne qui positionne le répertoire courant au même endroit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cd $(dirname -- "$0")
    ext="jpg gif mpg tif pnj JPG GIF MPG TIF PNJ"
    for a in $ext; do
        cp ~/Desktop/*.$a photos/
        cp ~/Pictures/*.$a photos/
    done
    ɹǝsn *sıɹɐlos*

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    C'est pas hyper-top, mais j'ai une solution qui devrait fonctionner:

    Dans une fenêtre Terminal, taper (ou copier/coller) tout ça:
    Code : 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
    cat > copier-photos.command <<EOT
    #!/bin/bash
     
    read -p "Please, drag here the USB key and press ENTER " folder
     
    folder=${folder}/photos
     
    if test ! -d "${folder}"; then mkdir "${folder}"; fi
     
    exts="jpg gif mpg tif pnj JPG GIF MPG TIF PNJ"
     
    for ext in ${exts}
    do cp -p ~/Desktop/*.${ext} ~/Pictures/*.${ext} "${folder}/"
    done
    EOT
    chmod +x copier-photos.command
    Ce qui crée un fichier "copier-photos.command" de type "Script shell de Terminal" dans le home directory.

    Pour utiliser ce programme:
    • dans le Finder, double-cliquer le fichier "copier-photos.command"
      (ce qui ouvre une fenêtre Terminal)
    • draguer la clé USB (ou n'importe quel dossier, si tu veux) vers cette fenêtre Terminal
    • taper la touche RETURN ou ENTER
    • taper la touche pomme-Q (pour quitter le Terminal)

    Voilà...

    L'étape suivante, c'est d'en faire une "vraie" application (peut-être avec dropscript, automator ou un autre outil)...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AppleScript] Aide pour traduire un Batch en AppleScript (explication du batch)
    Par clémsdos dans le forum AppleScript
    Réponses: 2
    Dernier message: 28/08/2014, 21h37
  2. [XCode] Aide pour traduire un Batch en Xcode (explication du batch)
    Par clémsdos dans le forum XCode
    Réponses: 1
    Dernier message: 26/08/2014, 00h43
  3. Besoin d'aide pour traduire du perl
    Par king_neo2001 dans le forum Langage
    Réponses: 5
    Dernier message: 22/05/2007, 15h10
  4. Besoin d'aide pour traduire un code NASM en MASM
    Par popol03 dans le forum Assembleur
    Réponses: 2
    Dernier message: 21/05/2007, 18h06
  5. Besoin d'aide pour traduire ces quelques lignes
    Par sircus dans le forum Langage
    Réponses: 3
    Dernier message: 09/08/2006, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo