Pages : 1
#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 ), mais je n'y arriverais pas car que je connais pas tout... J'ai déjà galéré pour le faire en Batch
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
NB. le script fonctionne avec la structure donnée, et en particulier des noms de fichiers sans espaces
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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
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 )
@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 ?
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.
@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
), mais je n'y arriverais pas car que je connais pas tout... J'ai déjà galéré pour le faire en Batch
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.
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 ?
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
)
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
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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 Merci.
Voici le résultat... et ça fonctionne
#!/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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne