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

时间:2016-11-14 19:10:14

标签: windows batch-file

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

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

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

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

编辑:

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

我的test.bat文件:

@echo on
%GO% 
pause

当我运行test.bat时,%~n0不会展开。

因此,test_golog.txt取代%~n0_golog.txt而不是Subject: MS1989, Characters: G3, Position: TL, Block: 2, Reaction Time: 957 ms Subject: MS1989, Characters: 7A, Position: TR, Block: 2, Reaction Time: 220 ms

1 个答案:

答案 0 :(得分:5)

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

echo %go%会报告go %~n0

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

您可以使用其他任何需要的套装。