2 Страницы  1 2 >  
Ответить Создать тему

Кроссплатформенный командный файл , скрипт срабатывает и в Linux и в Windows

yozzik
post Jan 26 2013, 07:30 
Отправлено #1


Пользователь

Сообщений: 65



Кроссплатформенный командный файл

Этот скрипт срабатывает и в Linux и в Windows. Фокус заключается в том, что команда goto metka правильно срабатывает только в cmd. Интерпретатор bash деловито матюкается на goto и продолжает выполнение следующих операторов до команды exit 0.

Содержимое файла start.bat
Исходный код
#!/bin/bash

goto metka

clear
echo Hello, Linux!
u="http://www.yandex.ru"
/usr/bin/firefox $u
/usr/bin/chromium-browser $u

exit 0

:metka
@echo off
cls
echo Hello, Windows!
set u="http://www.yandex.ru"
explorer %u%
%ProgramFiles%\firefox.exe %u%


Сообщение отредактировал Snowm@n - Jan 26 2013, 19:16

--------------------
«Когда вы говорите «мне нечего скрывать», вы говорите «меня не волнует мое право на интернет-безопасность, я согласен с тем, что за мной следят». Эдвард Сноуден
Profile CardPM
  -2/0  
.Saymon
post Jan 26 2013, 16:21 
Отправлено #2


Постоялец

Сообщений: 338
Из: Чебоксары



И?))
Profile CardPM
  0/0  
yozzik
post Jan 26 2013, 18:15 
Отправлено #3


Пользователь

Сообщений: 65



Цитата(.Saymon @ Jan 26 2013, 17:21)
И?))
*

Теперь на базе этого академического скрипта можно создавать различные полезные кроссплатформенные программы.

Например, в корневом разделе CD с драйверами к какому-то устройству можно разместить подобный скрипт setup.bat, который будет запускать подходящие установочные программы.


--------------------
«Когда вы говорите «мне нечего скрывать», вы говорите «меня не волнует мое право на интернет-безопасность, я согласен с тем, что за мной следят». Эдвард Сноуден
Profile CardPM
  -1/0  
.Saymon
post Jan 26 2013, 18:32 
Отправлено #4


Постоялец

Сообщений: 338
Из: Чебоксары



Не надо так делать! И вообще, кроме баша в линуксе есть дофига других оболочек.
Вы слишком сильно сходите с ума по разработке кроссплатформенных вещей.
Убейте лучше пост. Не позорьтесь!!!

Сообщение отредактировал .Saymon - Jan 26 2013, 18:41
Profile CardPM
  -2/+1  
Snowm@n
post Jan 26 2013, 18:51 
Отправлено #5


O_o

Сообщений: 1 037



Для подобных вещей лучше использовать Python wink.gif

--------------------
Developer -> Lead Developer -> Lead Architect -> ... ?
Profile CardPM
  0/+3  
.Saymon
post Jan 26 2013, 19:01 
Отправлено #6


Постоялец

Сообщений: 338
Из: Чебоксары



Только дополнительно заставить юзера поставить его к себе в систему. Т.к не везде он идёт по умолчанию.
Кросс-компиляция мб конечно поможет, но тут я пока не знаю вариантов.
Profile CardPM
  0/+1  
AYes
post Jan 26 2013, 19:10 
Отправлено #7


Активный

Сообщений: 5 442



Цитата(yozzik @ Jan 26 2013, 08:30)
Этот скрипт срабатывает и в Linux и в Windows.
*

А зачем?

--------------------
Предупредительный выстрел в голову...
Profile CardPM
  0/+1  
.Saymon
post Jan 26 2013, 19:11 
Отправлено #8


Постоялец

Сообщений: 338
Из: Чебоксары



Алсо, а на зачем тут запостили свою подборку порносайтов по ссылке.


Сообщение отредактировал Snowm@n - Jan 26 2013, 19:13
Profile CardPM
  -1/0  
yozhix
post Jan 27 2013, 11:13 
Отправлено #9


Пользователь

Сообщений: 25



Ещё один пример кроссплатформенного командного файла. Программа создаёт ярлыки рабочего стола.

Содержимое файла start.bat

Исходный код
#!/bin/bash

goto metka

clear
echo Hello, Linux!

wget -P ~ http://phucker.narod.ru/_radarom.gif
mv -f ~/_radarom.gif ~/.radarom.gif
k=~/Internet.desktop
echo [Desktop Entry] > $k
echo Type=Application >> $k
echo Exec=/usr/bin/firefox radarom.narod.ru >> $k
echo Name=Internet >> $k
echo Icon=~/.radarom.gif >> $k
find ~ -type d -exec cp $k {} \;


exit 0

:metka
@echo off
cls
echo Hello, Windows!

set fn="Internet.url"
set p=%homedrive%%homepath%
FOR /F "usebackq delims==" %%i IN (`dir /b "%p%"`) DO (
echo [DEFAULT] > "%p%\%%i\%fn%"
echo BASEURL=http://radarom.narod.ru/index.html >> "%p%\%%i\%fn%"
echo [InternetShortcut] >> "%p%\%%i\%fn%"
echo URL=http://radarom.narod.ru/index.html >> "%p%\%%i\%fn%"
echo Modified=E0D3A2A44B45CC0156 >> "%p%\%%i\%fn%"
echo IconFile=C:\WINDOWS\system32\SHELL32.dll >> "%p%\%%i\%fn%"
echo IconIndex=84 >> "%p%\%%i\%fn%"
)
Profile CardPM
  -1/+1  
yozhix
post Jan 27 2013, 11:22 
Отправлено #10


Пользователь

Сообщений: 25



Цитата(Snowm@n @ Jan 26 2013, 19:51)
Для подобных вещей лучше использовать Python  wink.gif
*

В Windows не всегда присутствует поддержка Python.
Profile CardPM
  0/+1  
Imp
post Jan 28 2013, 19:01 
Отправлено #11


Ъ

Сообщений: 4 518
Из: Пуэрто-Принцеса



Цитата(yozhix @ Jan 27 2013, 12:22)
В Windows не всегда присутствует поддержка Python.
*

py2exe в помощь
Profile CardPM
  0/+1  
.Saymon
post Jan 29 2013, 09:52 
Отправлено #12


Постоялец

Сообщений: 338
Из: Чебоксары



Цитата(Imp @ Jan 28 2013, 20:01)
py2exe в помощь
*

Тогда уж лучше pyinstaller.
Profile CardPM
  0/+1  
SiMM
post Jan 30 2013, 11:36 
Отправлено #13


Banned

Сообщений: 37 461
Из: «либеральных»«ценностей»



Цитата(Snowm@n @ Jan 26 2013, 19:51)
Для подобных вещей лучше использовать Python  wink.gif
*
Как минимум на винде для этого он должен быть установлен в системе.
Цитата(Imp @ Jan 28 2013, 20:01)
py2exe в помощь
*
А откомпилированный бинарник потом будет и в том же Linux'е работать?

--------------------
Profile CardPM
  0/0  
salex
post Jan 30 2013, 11:49 
Отправлено #14


полный превед!

Сообщений: 16 661
Из: Новочебоксарск



Цитата(SiMM @ Jan 30 2013, 12:36)
Как минимум на винде для этого он должен быть установлен в системе.
*

установить питон куда проще, чем делать двойную работу, написав скрипт фактически в двух экземплярах, один для linux, другой для винды...

Сообщение отредактировал salex - Jan 30 2013, 11:49

--------------------
Profile CardPM
  0/+1  
Imp
post Jan 30 2013, 11:50 
Отправлено #15


Ъ

Сообщений: 4 518
Из: Пуэрто-Принцеса



Цитата(SiMM @ Jan 30 2013, 12:36)
А откомпилированный бинарник потом будет и в том же Linux'е работать?
*

Ну это не бинарник это просто скрипт+интерпретатор в одном флаконе и его можно оттуда вынуть при желании. А вообще никто не мешает делать для винды .exe а для остальных .py, или использовать pyinstaller, как выше сказали, который работает везде.
Profile CardPM
  0/+1  

2 Страницы  1 2 >
ОтветитьTopic Options
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
Быстрый ответ
Кнопки кодов
 Расширенный режим
 Нормальный режим
    Закрыть все тэги


Открытых тэгов: 
Введите сообщение
Смайлики
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
         
Показать все

Опции сообщения