* .bat Файлы, открытые из Eclipse, открываются в неправильном каталоге - PullRequest
3 голосов
/ 04 августа 2010

Я совершенно новичок в написании сценариев, но я устал от компиляции собственного нативного кода для Android вручную, поэтому я написал небольшой сценарий .sh и файл .bat для запуска этого сценария в cygwin.Оба файла помещаются в корень проекта, в файле .sh устанавливается каталог NDK, а затем, запуская файл .bat, я компилирую свой собственный код.

Проблема в том, что я хочу это сделатьдинамически, поэтому я использую% CD%, чтобы получить текущий каталог (который должен быть папкой проекта) и запустить файл .sh в этом каталоге.

Вот оба файла:

.bat:

@echo off

::Used to surpess a warning about dos directory format.
set CYGWIN=nodosfilewarning

C:\cygwin\bin\bash --login -i %CD%\./compile.sh

pause

.sh:

#!/bin/bash

#Run this script through compileNative.bat This will compile the native code of this Project
#IF this file is changed under windows use "tr -d '\r' < edited.sh > final.sh " to remove the bad line endings.
#Keep both this and the .bat file in the project root.
# Set this to the base NDKDir
NDKDIR=C:/Android/NDK/


#Get the base dir so we can change the directory to the base dir.
BASEDIR=`dirname $0`

echo 
echo Compiling Native code. Refresh Workspace after this is done!
echo 
#Change to the directory of the project, change this is if the project movies.
cd $BASEDIR

#Run the ndk build file. Change this to the correct location.
$NDKDIR./ndk-build

Когда я открываю файл .bat из папки в Windows, он работает очень хорошо.Когда я запускаю его из затмения, кажется, что% CD% дает мне «C: / Eclipse».Больше всего меня раздражает тот факт, что он работал все утро, но вдруг он начал это делать.

Так что мой вопрос в том, неправильно ли я использую% CD%, или почему это может произойти.Очевидно, это не большая драма.Но это небольшая досадная проблема, которую я не могу понять.

Некоторая справка была бы отличной.

Ответы [ 2 ]

7 голосов
/ 15 июня 2012

Вставьте эти команды поверх вашего командного файла:

%~d0
cd %~p0

первая команда заменяет текущий привод на извлеченный из параметра% 0;

второе изменение текущего dir на путь, извлеченный из параметра% 0.

0 голосов
/ 04 августа 2010

Я предлагаю создать для этого внешнюю конфигурацию инструмента (зеленый значок «Выполнить» с красной рамкой - или блокировка, прямо рядом со значками «Выполнить / Отладка»).Внешний инструмент может запускать сценарии с предопределенными переменными среды или рабочими каталогами.

Для динамической установки этих каталогов (например, на основе выбранного в данный момент проекта) вы можете использовать переменные платформы, такие как $ {container_loc} или$ {resource_loc} - используйте кнопку Variables ..., чтобы получить список доступных переменных.

Update : таким образом, вы, вероятно, можете добавить скрипт cygwin напрямую, без необходимостифайл летучей мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...