gpt4 book ai didi

batch-file - 如何获取调用bat脚本的名称

转载 作者:行者123 更新时间:2023-12-02 17:20:30 24 4
gpt4 key购买 nike

我需要让我的 2.bat 脚本行为取决于调用脚本的名称。

场景:2.bat 是从许多其他外部脚本调用的,我无权更改这些脚本。只有 2.bat 在我手下。

1.bat:

...
call 2.bat

2.bat:

...here place something extracting "1.bat"...

最佳答案

由于您无法更改调用 bat,因此如果它是通过 cmd 控制台触发的(可能是内存转储可能有帮助?),则几乎不可能获取其名称,因为 ProcessId 将仅保存 的信息cmd.exe。命令提示符历史记录可以为您提供一些信息,但它不可靠(并且需要转储到临时文件)

如果调用 bat 被双击,你可以使用这个:

 setlocal enableDelayedExpansion
for /f "tokens=2* delims= " %%a in ("%cmdcmdline%") do (
if /i "%%~a" equ "/c" (
for %%# in (%%~b) do (
echo calling bat : %%~#
)
) else (
doskey /history >"%tmp%\cmd.history"
for /f "usebackq tokens=* delims=" %%# in ("%tmp%\cmd.history") do (
set "last_command=%%#"
)
echo probably this is the calling bat: !last_command!
del /q /f "%tmp%\cmd.history"
)
)


pause

关于batch-file - 如何获取调用bat脚本的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43089515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com