微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windowsbatch filepopd不按预期工作

我正在使用以下批处理脚本来运行Java命令行工具。

@echo off pushd %~dp0 setLocal EnableDelayedExpansion set CLAsspATH=" for /R ./libs %%a in (*.jar) do ( set CLAsspATH=!CLAsspATH!;%%a ) set CLAsspATH=!CLAsspATH!" java -cp !CLAsspATH! com.example.CLIApplication %* popd

我已经将工具的目录添加到系统variablesPATH中,以便可以通过命令提示符从任何目录运行它。 这是工作,但我看到的问题是:

该工具的目录是C: tool 用户在C:执行batch file后,用户将保留在C: tool not C:

popup被调用,但控制台导航回到C: too ,而不是留在C:

fc.exe:Windows 8中的命令行工具

如何获得通讯输出的第一列?

如何在安装而不是每次启动时一次性传递参数给Windows服务

Java exec()不会返回pipe道连接命令的预期结果

Python读取Windows命令行输出

脚本完成后,如何确保用户目录不被更改?

去path,然后焦油?

没有明显的原因,在一个非常基本的脚本中,“input行太长”错误

使用xdg-open打开别名是安全的

我如何testing在Linux服务器上的命令行的网速(无gui)?

AJAX Progress:从Shell读取输出

没有endlocal的setlocal导致这个问题。

你只需要在调用popd之前添加一个endlocal 。

在你的代码中, popd返回到你的第一个目录,但是当setlocal存储所有的变量和所有打开的setlocals在退出批处理时被隐式的endlocals关闭,它也会恢复cd变量。

我可能会偏离轨道,但为什么不使用:

pushd .

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐