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

Batch Change dir and use current dir as command

我尝试将 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

我切换目录,运行我的文件,但是参数"workingdir"不正确。 workingdir 应该是我 运行 从中获取此脚本的路径(脚本存储在我的 Windows 的 System32 中)

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

如何解决这个问题?

我已经解决了问题。我还没有意识到我必须在 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访问第一个参数,没有尾随的%