我有一个名为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
答案 0 :(得分:5)
在批处理文件中,您可以call
取消引用变量。
echo %go%
会报告go %~n0
。
call echo %go%
将报告go test
(来自名为test的批处理文件)。
您可以使用其他任何需要的套装。