Script .bat sous windows vers linux
mael9
Messages postés
373
Date d'inscription
Statut
Membre
Dernière intervention
-
mael9 Messages postés 373 Date d'inscription Statut Membre Dernière intervention -
mael9 Messages postés 373 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comment modifier ce script :
Pour qu'il fonctionne sous linux ?
phrase.txt contient plusieurs phrases, et beaucoup d'autres.
Salut ça va ?
Bonjour a toi
Hello !!
BlaBlaBla
lorsque je met ces lignes de commande de fichiers batch dans un fichier sous linux et que je le rend exécutable, lorsque je le lance, linux de reconnait pas certaines commande.. (comme setlocal...)
Aidez moi svp =( !
Comment modifier ce script :
@echo off
setlocal enableDelayedExpansion
::Nombre de phrases Total.
set phraseTotal=0
for /f %%i in ('type "phrase.txt"') do set /a phraseTotal+=1
::Tirage au sort d'une des pharses.
call set /a LignePhrase=%%random%%%%%%%phraseTotal%
::Extraction de la phrase.
set ligne=0
for /f "delims=""" %%i in ('type "phrase.txt"') do (
if !ligne!==!LignePhrase! set phrase=%%i
set /a ligne+=1
)
::Affichage de la phrase
msg * %phrase%
Pour qu'il fonctionne sous linux ?
phrase.txt contient plusieurs phrases, et beaucoup d'autres.
Salut ça va ?
Bonjour a toi
Hello !!
BlaBlaBla
lorsque je met ces lignes de commande de fichiers batch dans un fichier sous linux et que je le rend exécutable, lorsque je le lance, linux de reconnait pas certaines commande.. (comme setlocal...)
Aidez moi svp =( !
A voir également:
- .Bat linux
- Creer un fichier .bat - Guide
- Bat to exe - Télécharger - Édition & Programmation
- Linux reader - Télécharger - Stockage
- Backtrack linux - Télécharger - Sécurité
- R-linux - Télécharger - Sauvegarde
3 réponses
Bonjour,
Batch (Windows) et Bash (Linux) font référence à deux langages de scripting. Bien que les deux soient similaires, ils sont loin d'avoir une syntaxe identique.
Tu pourras trouver des informations concernant la conversion batch > bash
à cette adresse --> https://tldp.org/LDP/abs/html/dosbatch.html
Bon courage.
Batch (Windows) et Bash (Linux) font référence à deux langages de scripting. Bien que les deux soient similaires, ils sont loin d'avoir une syntaxe identique.
Tu pourras trouver des informations concernant la conversion batch > bash
à cette adresse --> https://tldp.org/LDP/abs/html/dosbatch.html
Bon courage.
Merci tout le monde, je vais essayer !
EDIT :
Eux voilà ce que ça donne...
J'ai du me tromper je pense :
_______________________________________________________________________________
Et voici ce que j'ai tappé dans le terminal :
Et ce qu'il me dit :
Un nouveau code mais toujours la même erreur :
_______________________________________________________________________________
Puis j'ai essayer avec ce converteur....
http://filegod.netfirms.com/Bat2Bash.html
qui m'a transformé le fichier d'origine en ceci :
puis dans le terminal, ça donne ceci :
____________________________________________________________________________
Faut-il que je mette :
au début de mon fichier ?
EDIT :
Eux voilà ce que ça donne...
J'ai du me tromper je pense :
set +v
exportlocal enableDelayedExpansion
export phraseTotal=0
for /f var in ('type "phrase.txt"') do export /a phraseTotal+=1
source or . export /a LignePhrase=%%random%%%%%%%phraseTotal%
export ligne=0
for /f "delims=""" %%i in ('type "phrase.txt"') do (
if !ligne!==!LignePhrase! set phrase=%%i
export /a ligne+=1
)
::Affichage de la phrase
msg * %phrase%
_______________________________________________________________________________
Et voici ce que j'ai tappé dans le terminal :
mael@mael:~$ chmod +x /home/mael/Desktop/chucknorris.bat mael@mael:~$ /home/mael/Desktop/chucknorris.bat
Et ce qu'il me dit :
/home/mael/Desktop/chucknorris.bat: line 2: exportlocal : commande introuvable
/home/mael/Desktop/chucknorris.bat: line 5: Erreur de syntaxe près du symbole inattendu « var »
/home/mael/Desktop/chucknorris.bat: line 5: 'for /f var in ('type "phrase.txt"') do export /a phraseTotal+=1 '
Un nouveau code mais toujours la même erreur :
set +v
setlocal enableDelayedExpansion
export phraseTotal=0
for /f var in ('type "phrase.txt"') do export /a phraseTotal+=1
source or . export /a LignePhrase=$$random$$$$$$$phraseTotal$
export ligne=0
for /f "delims=""" $$i in ('type "phrase.txt"') do (
if !ligne!==!LignePhrase! set phrase=$$i
export /a ligne+=1
)
msg * $phrase$
_______________________________________________________________________________
Puis j'ai essayer avec ce converteur....
http://filegod.netfirms.com/Bat2Bash.html
qui m'a transformé le fichier d'origine en ceci :
set +vecho off
exportlocal enablermayedExpansion
export phraexportotal=0
for /f %%i in ('cat "phrase.txt"') do export /a phraexportotal+=1
. export /a LignePhrase=%%random%%%%%%%phraexportotal%
export ligne=0
for /f "rmims=""" %%i in ('cat "phrase.txt"') do (
if !ligne!=!LignePhrase! export phrase=%%i
export /a ligne+=1
)
msg * %phrase%
puis dans le terminal, ça donne ceci :
mael@mael:~$ /home/mael/Desktop/chucknorris.bat
/home/mael/Desktop/chucknorris.bat: line 1: set: +c : option non valable
set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
/home/mael/Desktop/chucknorris.bat: line 2: exportlocal : commande introuvable
: commande introuvablechucknorris.bat: line 3:
» : identifiant non valablenorris.bat: line 4: export: «
/home/mael/Desktop/chucknorris.bat: line 5: Erreur de syntaxe près du symbole inattendu « %%i »
/home/mael/Desktop/chucknorris.bat: line 5: 'for /f %%i in ('cat "phrase.txt'') do export /a phraexportotal+=1
____________________________________________________________________________
Faut-il que je mette :
#!/bin/sh
au début de mon fichier ?
OK, merci
Ceci :
Me donne cette erreur :
Quel interpréteur dois-je mettre ?
et sans interpréteur :
voià ce que ça me donne :
Ceci :
#!/bin/sh
set +vecho off
exportlocal enablermayedExpansion
export phraexportotal=0
for cat %%i in ('cat "phrase.txt"') do export /a phraexportotal+=1
. export /a LignePhrase=%%random%%%%%%%phraexportotal%
export ligne=0
for cat "rmims=""" %%i in ('cat "phrase.txt"') do (
if !ligne!=!LignePhrase! export phrase=%%i
export /a ligne+=1
)
msg * %phrase%
Me donne cette erreur :
bash: /home/malounet/Desktop/chucknorris.bat : /bin/sh^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
Quel interpréteur dois-je mettre ?
et sans interpréteur :
voià ce que ça me donne :
malounet@Malounet:~$ /home/malounet/Desktop/chucknorris.bat
/home/malounet/Desktop/chucknorris.bat: line 1: set: +c : option non valable
set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
/home/malounet/Desktop/chucknorris.bat: line 2: exportlocal : commande introuvable
: commande introuvablechucknorris.bat: line 3:
» : identifiant non valablenorris.bat: line 4: export: «
/home/malounet/Desktop/chucknorris.bat: line 5: Erreur de syntaxe près du symbole inattendu « %%i »
/home/malounet/Desktop/chucknorris.bat: line 5: 'for cat %%i in ('cat "phrase.tx'"') do export /a phraexportotal+=1
Merci,
Avec ceci :
Puis en le lançant dans le terminal, j'obtiens ceci :
Avec ceci :
#!/bin/bash
set +v echo off
exportlocal enablermayedExpansion
export phraexportotal=0
for cat %%i in ('cat "phrase.txt"') do export /a phraexportotal+=1
. export /a LignePhrase=%%random%%%%%%%phraexportotal%
export ligne=0
for cat "rmims=""" %%i in ('cat "phrase.txt"') do (
if !ligne!=!LignePhrase! export phrase=%%i
export /a ligne+=1
)
msg * %phrase%
Puis en le lançant dans le terminal, j'obtiens ceci :
malounet@malounet-desktop:~$ /home/malounet/Bureau/test
/home/malounet/Bureau/test: line 3: exportlocal : commande introuvable
/home/malounet/Bureau/test: line 6: Erreur de syntaxe près du symbole inattendu « %%i »
/home/malounet/Bureau/test: line 6: 'for cat %%i in ('cat "phrase.txt"') do export /a phraexportotal+=1 '
Bonne aidé Giorgiolino et bon lien aussi ;)