Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/05/2012, à 19:44

Nyrhu

[Résolu]MS-Dos vers shell bash ?

Bonjour à tous,

Sous Windows, j'ai développé un code source Batch (MS-Dos) qui permet de générer des JavaScript qui seront intégrés dans des pages HTML.

J'aimerais savoir si quelqu'un est partant pour convertir le code source Batch de façon à ce qu'il soit exécutable sous Ubuntu (dans n'importe quel langage, en shell par exemple) ?

Mon but est de pouvoir utiliser le même système de création de ma galerie, de pouvoir le modifié en toute simplicité, sous Windows et Ubuntu. Cette galerie n'est pas très complexe, mais il y à un nombre presque illimitée d'images...

Téléchargez le fichier ZIP de la structure de dossiers avec exemples d'images, miniatures et descriptions + fichier Batch.


Voici la structure de mes dossiers :

Outils [ EST UN DOSSIER ]
    - Scripting.bat [ EST LE FICHIER BATCH EN QUESTION ]
Planches [DOSSIER QUI CONTIENT LES GALERIES]
    angiologie [ CATEGORIE D'IMAGES ]
        desc [ DOSSIERS DE FICHIERS TXT, POUR LA DESCRIPTION DES L'IMAGES ]
            - A01.txt  [ FICHIERS TXT, POUR LA DESCRIPTION DE L'IMAGE ]
            - A02.txt
            - A-etc.txt
        img [ DOSSIER QUI CONTIENT LES IMAGES EN TAILLE 100% ]
            - A01.jpg [IMAGE EN TAILLE 100% ]
            - A02.jpg
            - A-etc.jpg
        mini [ DOSSIER DES IMAGES MINIATURES ]
            - A01.jpg  [ MINIATURE DE L'IMAGE ]
            - A02.jpg
            - A-etc.jpg
    myologie  [ CATEGORIE D'IMAGES ]
        desc [ DOSSIERS DE FICHIERS TXT, POUR LA DESCRIPTION DES L'IMAGES ]
            - M01.txt  [ FICHIERS TXT, POUR LA DESCRIPTION DE L'IMAGE ]
            - M02.txt
            - M-etc.txt
        img  [ DOSSIER QUI CONTIENT LES IMAGES EN TAILLE 100% ]
            - M01.jpg  [IMAGE EN TAILLE 100% ]
            - M02.jpg
            - M-etc.jpg
        mini [ DOSSIER DES IMAGES MINIATURES ]
            - M01.jpg  [ MINIATURE DE L'IMAGE ]
            - M02.jpg
            - M-etc.jpg
    etc  [ CATEGORIE D'IMAGES ]



Voici mon code source Batch :

@ECHO OFF
SETLOCAL enableDelayedExpansion
COLOR 1F
TITLE Scripting...
ECHO.
ECHO   Creation des scripts de galerie de planches anatomiques...
ECHO.
SET max=0
SET count=0
SET current=0
SET class=0
SET Folder=planches
SET FolderDest=../%Folder%
SET ScriptLocation=%FolderDest%/%%A/script.js
FOR /F "delims=" %%A IN ('DIR /B /A:D "%FolderDest%"') DO SET /A class+=1 &(
    ECHO      ^> %%A
    ECHO document^.write^(^"^<br /^>^<br /^>^\>%ScriptLocation%
    FOR /F "delims=." %%B IN ('DIR /B "%FolderDest%\%%A\img\*.jpg"') DO SET /A max+=1
    FOR /F "delims=." %%B IN ('DIR /B "%FolderDest%\%%A\img\*.jpg"') DO SET /A count+=1 &(
        FOR /F "delims=" %%C IN (%FolderDest%\%%A\desc\%%B.txt) DO SET /A current+=1 &(
            >>%ScriptLocation% (
                ECHO ^<a href^=\"%Folder%/%%A/img/%%B.jpg\" title=\"Planche n° %%B\" rel^=\"lightbox-%%A\"^>^<img class=\"imgPlancesFloatLeft\" alt^=\"\" src^=\"%Folder%/%%A/mini/%%B.jpg\" /^>^</a^>\
                ECHO ^<h2^>Planche n° %%B\^</h2^>\
                ECHO ^<p^>%%C^</p^>\
                ECHO ^<div class^=\"clearFloat\"^>^</div^>\
            )
            if !count! NEQ !max! (
                >>%ScriptLocation% (
                    ECHO ^<br /^>^<br /^>^<br /^>^<br /^>^<br /^>^<br /^>\
                    ECHO \
                )
            )
        )
    )
    ECHO ^"^) >>%ScriptLocation%
)
ECHO.
ECHO.
ECHO.
ECHO   Nombre total de classifications : %class%
ECHO   Nombre total de planches : %max%
ECHO   Nombre de planches et descriptions combines dans le script : %current%
PAUSE>NUL

Merci d'avance.

Dernière modification par nitcho (Le 19/05/2012, à 11:49)

Hors ligne

#2 Le 16/05/2012, à 09:55

telliam

Re : [Résolu]MS-Dos vers shell bash ?

[modéré : on est ici pour aider bénévolement]

Dernière modification par xabilon (Le 19/05/2012, à 02:46)


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#3 Le 16/05/2012, à 14:59

Nyrhu

Re : [Résolu]MS-Dos vers shell bash ?

Toute ma gratitude :d

Plus sérieusement, tout travail mérite salaire. Je verserais [Aucun échange d'argent ne peut avoir lieu] à celui ou celle qui me livrera le code source fonctionnel.

[Edit modérateur : l'entraide sur ce forum est basée sur le bénévolat, pas sur l'appât du gain]

Dernière modification par xabilon (Le 19/05/2012, à 01:20)

Hors ligne

#4 Le 18/05/2012, à 18:29

telliam

Re : [Résolu]MS-Dos vers shell bash ?

honnetement, tu px tres facilement l'adapter en shell, meme sans aide.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#5 Le 18/05/2012, à 20:21

Nyrhu

Re : [Résolu]MS-Dos vers shell bash ?

@telliam : Je ne connais absolument rien en shell, j'ai essayer de commencer la conversion cette après-midi... J'ai vus que pas mal de commandes sont similaires (on voit que Windows à pompé sur Linux yikes), mais je n'y arriverais pas car que je connais pas tout... J'ai déjà galéré pour le faire en Batch tongue Ou alors, je dois étudier le shell, mais c'est le temps qu'il me manque.

@HP : t'es commentaires inutiles tu te les gardes ! Je le signale aux modo. Je ne vais pas donner plus [Aucun échange d'argent ne peut avoir lieu] pour ça. C'est assez simple comme programme quand on y regarde de plus près.

Dernière modification par xabilon (Le 19/05/2012, à 01:18)

Hors ligne

#6 Le 19/05/2012, à 02:50

xabilon

Re : [Résolu]MS-Dos vers shell bash ?

Salut

Essayons de recadrer cette discussion. Nous sommes dans une section d'aide; les messages doivent donc servir à résoudre le problème. Et il est hors de question de monnayer l'entraide sur ce forum.
telliam : tu as pris la décision de répondre le premier à cette discussion, la faisant ainsi sortir des "sujets sans réponses" ; c'est donc que tu souhaites apporter ton aide.


Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.

Hors ligne

#7 Le 19/05/2012, à 04:51

nesthib

Re : [Résolu]MS-Dos vers shell bash ?

Allez, parce que que c'est fun…

workingdir="../planches"

for folder in ${workingdir}/*
    do echo "on travaille dans ${folder}"
    echo 'document.write("<br /><br />\' > "${folder}/script.js"
    for fichier in "${folder}"/img/*
        do file="${fichier##*/}"
        echo "on travaille sur le fichier ${fichier}"
        echo '<a href=\"'${fichier##../}'\" title=\"Planche n° '${file%.*}'\" rel=\"lightbox-'${folder##*/}'\"><img class=\"imgPlancesFloatLeft\" alt=\"\" src=\"'${folder##../}'/mini/'${fichier##*/}'\" /></a>\
<h2>Planche n° '${file%.*}'\</h2>\
<p>'$( cat "${fichier%/img*}/desc/${file%.*}.txt")'</p>\
<div class=\"clearFloat\"></div>\
<br /><br /><br /><br /><br /><br />\
\' >> "${folder}/script.js"
    done
echo '") ' >> "${folder}/script.js"
done

si tu veux toujours monétiser cet effort, tu peux le faire ici, tu peux mettre « de la part de nesthib » en code promotionnel tongue

NB. le script fonctionne avec la structure donnée, et en particulier des noms de fichiers sans espaces


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#8 Le 19/05/2012, à 11:25

Nyrhu

Re : [Résolu]MS-Dos vers shell bash ?

Moi aussi je trouvais ça fort qu'on me demande combien je prends pour un petit service alors qu'on est dans un forum qui traite du libre et qu'on est pas tous des professionnels.

@nesthib : Je te remercie grandement, c'est parait, je viens de tester big_smile

Tant que j'y suis, j'en ai un seconde du même genre... est-ce que j'habuserai en te demandant si tu peux le convertir ? (Promis, je m'achète un livre sur le shell bash pour l'avenir tongue)

@ECHO OFF
COLOR 1F
TITLE ScriptGallery LightBox (xhtml)
ECHO.
ECHO   Creation des scripts de galerie en cours...
ECHO.
IF EXIST *.js DEL *.js
FOR /F "delims=" %%A IN ('DIR /B /A:D "..\gallery"') DO (
    ECHO      ^> %%A
    ECHO document^.write^(^"^\>script-%%A.js
    FOR /F "delims=" %%B IN ('DIR /B "..\gallery\%%A\img\*.jpg"') DO (
        >>script-%%A.js (
            ECHO ^<a href^=\"gallery/%%A/img/%%B\" rel^=\"lightbox[%%A]\"^>^<img alt^=\"\" src^=\"gallery/%%A/mini/%%B\" /^>^</a^>\
        )
    )
    ECHO ^"^) >>script-%%A.js
)
EXIT

Dernière modification par nitcho (Le 19/05/2012, à 11:39)

Hors ligne

#9 Le 19/05/2012, à 12:26

telliam

Re : [Résolu]MS-Dos vers shell bash ?

xabilon a écrit :

Salut
Essayons de recadrer cette discussion. Nous sommes dans une section d'aide; les messages doivent donc servir à résoudre le problème. Et il est hors de question de monnayer l'entraide sur ce forum.
telliam : tu as pris la décision de répondre le premier à cette discussion, la faisant ainsi sortir des "sujets sans réponses" ; c'est donc que tu souhaites apporter ton aide.

Faudrait peut etre voir à correctement interpréter les smileys et le ton de la discussion.
Si l'humour est pris au 1er degré le forum va vite devenir ennuyeux.

nitcho a écrit :

@telliam : Je ne connais absolument rien en shell, j'ai essayer de commencer la conversion cette après-midi... J'ai vus que pas mal de commandes sont similaires (on voit que Windows à pompé sur Linux yikes), mais je n'y arriverais pas car que je connais pas tout... J'ai déjà galéré pour le faire en Batch tongue Ou alors, je dois étudier le shell, mais c'est le temps qu'il me manque.

jsutement poste le début de ton code modifié, on t'aidera a l'adapter. Tu apprendras bcp plus vite comme ça.

nitcho a écrit :

Moi aussi je trouvais ça fort qu'on me demande combien je prends pour un petit service alors qu'on est dans un forum qui traite du libre et qu'on est pas tous des professionnels.

CF mon message précédent sur l'humour...
Sans rancune...

edit modo : merci d'éviter les multipost

Dernière modification par nesthib (Le 19/05/2012, à 16:16)


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#10 Le 19/05/2012, à 16:17

nesthib

Re : [Résolu]MS-Dos vers shell bash ?

nitcho a écrit :

Tant que j'y suis, j'en ai un seconde du même genre... est-ce que j'habuserai en te demandant si tu peux le convertir ? (Promis, je m'achète un livre sur le shell bash pour l'avenir tongue)

non tu n'(h)abuserais pas de demander… mais je ne le ferai pas
autant la première fois était fun et te montrait la marche à suivre, autant maintenant c'est à toi de mettre les mains dans le camboui et j'ai d'autres choses à faire que le faire pour toi.

Essaie par toi même, confronte-toi à des problèmes, apprends et deviens capable de le faire comme un grand wink

man bash

http://mywiki.wooledge.org/BashSheet
http://linuxcommand.org/learning_the_shell.php

NB. Bien sûr, je serai ravi d'apporter mon aide si tu prends la peine de chercher un peu tout seul


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#11 Le 19/05/2012, à 18:07

Baronsed

Re : [Résolu]MS-Dos vers shell bash ?

La base :
http://www.siteduzero.com/tutoriel-1167 … linux.html
-> télécharger en pdf

Un guide avancé :
http://abs.traduc.org/abs-fr/
disponible en archive pour la consultation locale ici :
http://deschodt.iiens.net

Hors ligne

#12 Le 19/05/2012, à 18:31

Nyrhu

Re : [Résolu]MS-Dos vers shell bash ?

@nesthib : Tu as raison. Je me suis coller au boulot malgré que je n'avais pas envie de programmer... et l'envie est revenue smile Merci.

Voici le résultat... et ça fonctionne smile

#!/bin/bash
workingdir="../gallery"
echo "Création du script en cours..."
for folder in ${workingdir}/*
    do echo "   > Traitement de la galerie : ${folder##*/}"
    echo 'document.write("\' > "../scripts/script-${folder##*/}.js"
    for fichier in ${folder}/img/*
        do file="${fichier##*/}"
        {
            echo -n '<a href=\"gallery/'${folder##*/}'/img/'${file}'\" rel=\"lightbox['${folder##*/}']\">'
            echo '<img alt=\"\" src=\"gallery/'${folder##*/}'/mini/'${file}'\" /></a>\'
        }  >> "../scripts/script-${folder##*/}.js"
    done
    echo '")' >> "../scripts/script-${folder##*/}.js"
done
read

Encore une petite question... je lance la SH en double-cliquant dessus puis je choisis de le lancer dans le terminal. Comment faire en sorte que le terminal ne se ferme pas en fin d'exécution ?

Réponse : avec "read"

Dernière modification par nitcho (Le 19/05/2012, à 19:55)

Hors ligne

#13 Le 19/05/2012, à 19:41

Baronsed

Re : [Résolu]MS-Dos vers shell bash ?

read attend une valeur de l'utilisateur pour l'attribuer à une variable.
http://doc.ubuntu-fr.org/tutoriel/scrip … _un_script

Hors ligne

#14 Le 19/05/2012, à 23:13

nesthib

Re : [Résolu]MS-Dos vers shell bash ?

le problème du lancement est un problème du terminal, pas du script

certains terminaux ont une option pour rester ouverts après l'exécution d'une commande, d'autres (comme gnome-terminal) non


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne