环境变量中的批处理文件变量

Joh*_*ohn 0 windows batch-file

我有一个名为的程序go.exe,我传给它一个文件名,example以便它可以创建一个名为的日志文件example_golog.txt.

这里的问题是我只想调用可执行文件而不显式提供文件名或让用户必须提供文件名.

我的解决方案是命名一个名为GOvalue 的系统变量go.exe %~n0.这有什么不对,而不是%~n0获取调用它的批处理文件的文件名的部分,我的go.exe文件只是调用一个文本文件%~n0_golog.txt.

有没有办法解决这个问题,以便%~n0在调用它的批处理文件中做到这一点go.exe %~n0

编辑:

我的系统变量:名称:GO 值:go %~n0

我的test.bat档案:

@echo on
%GO% 
pause
Run Code Online (Sandbox Code Playgroud)

当我跑步时test.bat,%~n0不会扩大.

因此,而不是test_golog.txt%~n0_golog.txt制造

soj*_*oja 5

在批处理文件中,您可以call取消引用该变量.

echo %go%将报告go %~n0.

call echo %go%将报告go test(来自名为test的批处理文件).

你可以从那里使用你需要的任何其他套装.