代码之家  ›  专栏  ›  技术社区  ›  Pandoro

*从Eclipse打开的.bat文件在错误的目录中打开

  •  3
  • Pandoro  · 技术社区  · 15 年前

    我对脚本完全陌生,但我厌倦了手工编译我的Android本地代码,所以我写了一个.sh脚本和一个.bat文件来在cygwin中运行这个脚本。 这两个文件都放在一个项目的根目录中,.sh文件中设置了ndk目录,然后通过运行.bat文件来编译我的本机代码。

    问题是我希望动态地执行此操作,所以我使用%cd%获取当前目录(应该是项目文件夹)并启动该目录中的.sh文件。

    这两个文件都是:

    蝙蝠:

    @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
    

    当我从Windows的文件夹中打开.bat文件时,它运行得很好。当我从Eclipse运行它时,虽然看起来%cd%给了我“c:/eclipse”。更让我恼火的是它整个早上都在运行,但突然它开始这样做。

    所以我的问题是,我是不是用了错误的方式使用了%cd%,或者为什么会这样。显然,这不是一场大戏剧。但这是一个有点烦人的问题,我似乎想不出来。

    一些帮助会很好。

    2 回复  |  直到 12 年前
        1
  •  0
  •   Zoltán Ujhelyi    15 年前

    我建议为此创建一个外部工具配置(绿色的运行图标和一个红色框或锁,在运行/调试图标旁边)。外部工具可以使用预定义的环境变量或工作目录启动脚本。

    要动态设置这些目录(例如,基于当前选定的项目),您可以使用平台变量,例如$container或$resource使用变量…按钮获取可用变量列表。

    更新 :这样您就可以直接添加cygwin脚本,而无需BAT文件。

        2
  •  7
  •   Bruno von Paris    12 年前

    在批处理文件的顶部插入以下命令:

    %~d0
    cd %~p0
    

    第一个命令将当前驱动器更改为从%0参数提取的驱动器;

    第二个将当前目录更改为从%0参数提取的路径。