- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用以下批处理脚本来运行 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
我已将该工具的目录添加到系统变量 PATH 中,以便我可以通过命令提示符从任何目录运行它。这是有效的,但我看到的问题是:
该工具的目录是 C:\tool\用户在 C:\执行批处理文件后,用户留在 C:\tool\而不是 C:\
popd 被调用但控制台导航回 C:\too\而不是停留在 C:\
我如何确保他们的用户目录在脚本完成后不被更改?
最佳答案
没有endlocal的setlocal
导致了这个问题。
您只需要在调用popd
之前添加一个endlocal
。
在您的代码中,popd
返回到您的第一个目录,但是由于 setlocal 存储所有变量并且所有打开的 setlocals 在退出批处理时都被隐式 endlocals 关闭,它还会恢复 cd 变量。
关于java - Windows 批处理文件 popd 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883665/
每次我使用 pushd 或 popd 时,它都会将堆栈打印到标准输出。如何不这样做? 我不想每次都执行 pushd >/dev/null 因为我有很多脚本互相调用。 也许一个很好的覆盖就可以做到,但我
每次我使用 pushd 或 popd 时,它都会将堆栈打印到标准输出。如何不这样做? 我不想每次都执行 pushd >/dev/null 因为我有很多脚本互相调用。 也许一个很好的覆盖就可以做到,但我
有没有办法在脚本末尾撤消所有 pushd。我所拥有的是: pushd somwhere rem doing stuff goto end :end popd goto :EOF 我想要的是: setl
我不知道是否有有效的方法来做到这一点。但是,一直想看看它是否可能。 我知道 pushd、popd 和 dirs 对于许多事情都很有用,例如在您最近访问过的目录之间进行复制。 但是,有没有一种方法可以保
KSH 是否有等效于 bash pushd/popd 的内置命令? 对于那些不知道 bash 中的 pushd 和 popd 做什么的人,这里是手册页中的描述 pushd [-n] [dir]
我正在使用以下批处理脚本来运行 Java 命令行工具。 @echo off pushd %~dp0 setLocal EnableDelayedExpansion set CLASSPATH=" fo
我在尝试从共享网络驱动器获取文件时收到“不支持 UNC 路径”错误。 我的研究告诉我 pushd 和 popd 可能有帮助,但我不知道如何正确使用它们。 pushd 和 popd 有哪些好的用法示例?
当使用这两个命令优于 cd 和 cd - 时,pushd 和 popd 的实际用途是什么? 最佳答案 实际用途是你可以建立一堆目录,形成你去过的地方的踪迹,只需替换cd即可。与 pushd . 然后,
我在我的 bash 脚本中遇到了一些麻烦来做一些适当的“pushd/popd 清理”。也就是说:如果我执行了几次 pushd,我想确保在 exit 之前执行相同数量的 popd。 但是,我注意到 pu
有没有办法在 Dockerfile 中使用 pushd/popd 命令?如果可能的话,它会使一些安装脚本变得更容易。 最佳答案 可以做到,但你的图像必须有 bash 并且所有命令必须在同一个 RUN
我正在编写一个 Bash 脚本,我想 checkout 一个标签,然后 checkout 回到我开始的地方。 我尝试了 git co HEAD@{1},但是当从 master 开始时,这让我回到了 m
我无法理解 powershell 中 pushd、popd 和 robocopy 命令的工作原理。谁能通俗易懂地解释一下? 最佳答案 我不确定你所说的外行术语是什么意思。 从概念上讲,PUSH 和 P
我的 bash (4.1) 目录堆栈通常有十几个或更多条目。我想用 dirs -v 替换 dirs 的输出,所以我再也不用用 pushd 玩“猜魔数(Magic Number)”了。 我的部分解决方案
我正在运行以下批处理文件来运行 SQL 中的存储包我得到一个 UNC Paths are not supported错误。如果我在服务器上运行它,它运行正确。如果我与其他用户共享它,它不会。我不想创建
有没有比 pushd 和 popd 更直观的处理目录堆栈的方法? 我发现 pushd 和 popd 内置命令的 CLI 呈现给用户有点令人难以置信。但与此同时,我很乐意经常使用 dirs 内置命令提供
在我一次又一次找不到答案后,我编写了这些脚本: :: if you still don't know the GNU-GPLv3. :: ------------------------
我是一名优秀的程序员,十分优秀!