批量更改目录并使用当前目录作为命令

时间:2015-07-24 20:42:25

标签: batch-file set cd

我尝试编写一个CMD来运行我编写的脚本。

脚本语法是:

luajit.exe loader.lua nyufxlua "workingpath" suffix

库的工作路径和位置不同。

我试过以下:

@echo off

IF "%1%" == "" (
    GOTO :NOFILE
) ELSE (
    GOTO :FILE
)

:NOFILE
ECHO NO FILE GIVEN!
GOTO :EXIT

:FILE
SET "P=%CD%"
PUSHD C:\Projects\FXSpindle\trunk\deps\script\bin
luajit.exe loader.lua nyufxlua "%P%" %1%

:EXIT

我切换了direcotry,运行我的文件,但是参数" workingdir"是不正确的。 workingdir应该是我从这个scirpt运行的路径(脚本存储在我的Windows的System32中)

as" workingdir"给出了C:\ Projects \ FXSpindle \ trunk \ deps \ script \ bin,但不是我打开命令行的路径......

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我解决了问题。我没有意识到我必须在PUSHD之后使用POPD - 所以我在错误的目录...

正确的代码是:

@echo off

IF "%1%" == "" (
    GOTO :NOFILE
) ELSE (
    GOTO :FILE
)

:NOFILE
ECHO NO FILE GIVEN!
GOTO :EXIT

:FILE
SET "P=%CD%"
POPD C:\Projects\FXSpindle\trunk\deps\script\bin
luajit.exe loader.lua nyufxlua "%P%" %1%

:EXIT

答案 1 :(得分:0)

使用%1访问第一个参数,不带尾随的%