Как преобразовать скрипт оболочки bash в a.файл bat?
у меня есть скрипт оболочки bash на моем Mac, который мне нужно преобразовать в a .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`/
Спасибо за любые рекомендации или предложения для других решений. ЛО
6 ответов
на самом деле, вещи, которые вы упоминаете, тривиальны для порта в пакетный файл Windows. В то время как вы, конечно can использовать порты 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
имеет больше информации по этим вещам ближе к концу.
оболочка windows-это другой язык сценариев, чем оболочка bash. Вам нужно будет перенести его. Кроме того, вы можете использовать что-то вроде cygwin или mingw для запуска оболочки bash в windows.
вы должны конвертировать вручную. Изучите пакетные команды, затем выполните эквивалентные. Кроме того, вы можете использовать GNU win32 unix инструменты.
взгляните на powershell. Этот сайт имеет много примеров:
http://technet.microsoft.com/en-us/scriptcenter/powershell.aspx
справка F1 в windows удивительно полезна при написании пакетных файлов в стиле DOS. На рабочем столе windows нажмите F1 и выполните поиск пакета. Ссылка для использования параметров пакета довольно полезна для выполнения нечетных трюков с DOS. Страница "использование пакетных файлов" также довольно хороша. Как упоминают другие плакаты, вам лучше избегать batch в качестве языка реализации, но если вы должны, вы должны.