windows - bat/cmd 文件不返回

标签 windows batch-file cmd windows-7 directory

我想启动一些 .cmd 文件并保留在同一目录中。

C:\Oracle\Middleware\Oracle_Home\user_projects\domains\wl_server\bin\setDomainEnv.cmd

问题是,在执行 setDomainEnv.cmd 以及从中调用的大约 10 个其他 cmd 文件时,我完全留在了另一个目录中。我想成为我开始的地方。因为我总是从同一个目录开始,所以我添加了一个 cd 行:

Echo on
C:\Oracle\Middleware\Oracle_Home\user_projects\domains\wl_server\bin\setDomainEnv.cmd
Echo on
cd /d C:\workspaces\DS8\swprods\dist-4.1.8-local-devel\

没有效果!我又一次被留在了

C:\Oracle\Middleware\Oracle_Home\user_projects\domains\wl_server>

而且我什至从未在控制台中看到第 3,4 行。如果某些内部脚本以错误结束,我可以理解所有这些,但它们可以正常完成,没有错误。

如果某些脚本将目录更改为另一个磁盘并且返回更改需要/d key ,那将是可以理解的。但所有操作都在同一个 C: 盘上完成。

脚本中的所有操作都在同一个源目录中进行。离开批处理文件后更改目录。

....................................................
C:\workspaces\DS8\swprods\dist-4.1.8-local-devel>if "Oracle" == "Apple" (set MEM
_ARGS=-Xms2048m -Xmx2048m  -XX:CompileThreshold=8000 -XX:PermSize=128m  -XX:MaxPermSize=256m -XX:MaxPermSize=256m )

C:\workspaces\DS8\swprods\dist-4.1.8-local-devel>if exist C:\Oracle\MIDDLE~1\ORACLE~1\USER_P~1\domains\WL_SER~1\bin\setStartupEnv.cmd (call "C:\Oracle\MIDDLE~1\ORACLE~1\USER_P~1\domains\WL_SER~1\bin\setStartupEnv.cmd" )
^this is the last run line of the script

“为什么?”有时我会想,“为什么?”有时我想,“至于哪个?我怎样才能把目录改回来?

最佳答案

使用call :

call C:\Oracle\Middleware\Oracle_Home\user_projects\domains\wl_server\bin\setDomainEnv.cmd

调用将调用另一个脚本并在它完成后返回到您的脚本。

如果您不使用 call - 您的执行流程将转到另一个脚本但不会返回。

关于windows - bat/cmd 文件不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34417563/

相关文章:

Java 杀死程序(如果已经运行)

windows - 如何访问 Windows 共享上的 git 存储库?

windows - 如何通过 Windows 命令行确定 ALBD 服务是否正在运行?

windows - 检索环境变量的RAW内容[不扩展]

file - 使用批处理文件从文件中删除最后 n 行

c - 32/64 位 psr.exe 问题

c++ - 在 OS/X(或 Windows)中检测启动期间按住的修改键?

windows - 无法在 cmd 中通过管道传输 cmdlet 对象

batch-file - 设置在 bat 脚本中的 for + if 中不起作用,即使设置 ENABLEDELAYEDEXPANSION

windows - 跳过批处理脚本中的多行