使用Set命令从本地系统变量编写批处理程序

时间:2018-05-21 02:30:52

标签: batch-file

我需要编写一个显示计算机名称,用户名和用户文件路径的程序。所有这些都应该从本地系统变量中获取。已经暗示我应该使用set命令,但是,我不确定如何在这种情况下使用set命令...我曾假设我可以使用echo %COMPUTERNAME%等。如何实现set命令?

2 个答案:

答案 0 :(得分:1)

我猜测有关Set命令的提示是这样的,您可以使用它的输出来帮助您识别要在批处理文件中使用的本地系统变量,而不是您需要使用{ {1}}输出它们。

当您在命令提示符处输入Set时,您将获得显示每个已定义系统变量的输出。

此外,如果您在提示符处输入Set,您应该会得到输出,显示所有以字符串Set ComputerName开头的变量。

因此,基于ComputerName命令的输出,您可以Set,批处理文件中的三个变量如下:

Echo

您还可以包含变量及其值:

@Echo Off
Echo %ComputerName%
Echo %UserName%
Echo %UserProfile%

您还可以考虑在批处理文件中运行简单的@Echo Off Echo %%ComputerName%%=%ComputerName% Echo %%UserName%%=%UserName% Echo %%UserProfile%%=%UserProfile% 循环,以直接使用For命令显示相同的内容:

Set

或者您可以使用嵌套@Echo Off For %%A In (ComputerName,UserName,UserProfile) Do Set %%A Pause 循环中的SetEcho返回其值:

For

答案 1 :(得分:1)

将问题视为非文字(“使用set命令显示计算机名称”):

set computername
set username
set userprofile

输出如:

COMPUTERNAME=Elon-PC
USERNAME=Muscrat
USERPROFILE=C:\Users\Muskrat

(Compo在他的回答中已经有了这个方法,但我想使用for命令超出了你课程当前状态的界限。

(注意:在实际使用中,在大多数情况下,Compo的答案(使用变量)更好,因为在实践中,你可能会某些值,而不是“只是” show 他们,但这确实回答了你的问题)