Как преобразовать оболочку bash script в файл .bat?
У меня есть bash shell script на моем Mac, что мне нужно преобразовать в .bat файл (по крайней мере, то, что мне сказали) для пользователей, которые находятся на ПК. Мне было интересно, как это сделать, или кто-нибудь знает о хороших ссылках. Кажется, я не спрашиваю у Google правильный вопрос, чтобы указать мне в правильном направлении.
В частности, такие вещи, как, как бы я сделал...
cd ~/Documents/DropFolder
(... где ~/равно корню исходного каталога пользователя, независимо от имени пользователя)?
Или, когда вы работаете над переменными и инструкциями do...
for i in *.xml
do
java -Xss650K -Xms128m -Xmx2048m -jar /Applications...
done
И, наконец, определение и использование базовых имен...
cp -p `basename $i .xml`.xml ~/Documents/ReadyForServer/`basename $i .xml`/
Спасибо за любые рекомендации или предложения по другим решениям.
LO
Ответы
Ответ 1
Собственно, все, что вы упомянули, тривиально для порта для командного файла Windows. Хотя вы, безусловно, можете использовать Windows-порты всех инструментов Unix (или даже использовать слой эмуляции для еще большего удовольствия), это не сложно:
-
~ для домашней папки пользователя
Профиль пользователя находится в переменной окружения %USERPROFILE%
, поэтому следующее должно сделать это:
cd %USERPROFILE%\Documents\DropFolder
-
Итерирование по набору файлов
Команда for
полезна здесь:
for %%i in (*.xml) do -Xss650K -Xms128m -Xmx2048m -jar ... %%i
Очевидно, вам нужно адаптировать путь к файлу JAR.
И for
имеет гораздо больше применений за пределами этого, поэтому взгляните на help for
.
-
базовое
Вам нужно сделать это либо в подпрограмме, либо в цикле for
, поскольку следующий синтаксис специфичен для переменных или параметров цикла. Он не будет работать с переменными среды как есть. Вы можете получить то, что basename
дает вам, используя %%~ni
где %%i
, если переменная цикла или %~n1
, если %1
является аргументом для подпрограммы или командного файла, который у вас есть. Таким образом, вероятно, следующее:
copy "%%~ni.xml" "%USERPROFILE%\Documents\ReadyForServer\%%~ni\"
В справке for
содержится больше информации об этих вещах ближе к концу.
Ответ 2
Оболочка Windows - это другой язык сценариев, чем оболочка bash. Вам нужно будет его портировать. Кроме того, вы можете использовать что-то вроде cygwin или mingw для запуска оболочки bash на окнах.
Ответ 3
Вы также можете использовать Git для Windows, у которого уже есть встроенная оболочка Bash (GitBash)
Ответ 4
Взгляните на powershell. На этом сайте много примеров:
http://technet.microsoft.com/en-us/scriptcenter/powershell.aspx
Ответ 5
Помощь F1 в окнах удивительно полезна при написании пакетных файлов стиля DOS. На рабочем столе Windows нажмите F1 и найдите пакет. Ссылка для использования пакетных параметров довольно полезна для выполнения нечетных трюков с помощью DOS. Страница "Использование пакетных файлов" также неплоха. Как упоминают другие плакаты, вам лучше избегать партии в качестве языка реализации, но если вам нужно, вы должны.
Ответ 6
Вы должны преобразовать вручную. Изучите командные команды, затем выполните эквивалент. Кроме того, вы можете использовать инструменты GNU win32 unix.