我正在寻找环境变量%COMPUTERNAME%的帮助。它在我的脚本中用作在本地主机名之后命名文件的方法。在另一点上,我使用脚本在网络上的不同目录中构建文件夹(到映射的驱动器),我需要将文件夹命名为原始计算机的本地主机名。这可能没有意义,但我将在下面提供一个例子:
Comp1 = BobPC
Comp2 = JakePC
我正在BobPC上制作一个zip文件,然后将其复制到JakePC,但是我需要将这个文件复制到像...... C:\ CopiedFiles \ BobPc这样的目录中,因为这个脚本将在很多上运行计算机和每个计算机都需要一个文件夹,文件将以其来自的计算机命名。
我希望这是有道理的。
现在我可以让它构建一个文件夹就好了,但它明确地将它命名为“JakePC”,因为我使用环境变量来获取本地主机名。
我的问题基本上是如何告诉它在原始计算机之后命名文件夹?
如果您有任何问题让我知道,我会非常乐意解释,因为我知道我可能没有多大意义。
答案 0 :(得分:2)
我找到了两个片段来获取主机名。两者都在Windows 7 sp1和Windows Server 2012中运行正常:
'
' How to get the hostname
'
' References
'
' Method1: http://www.robvanderwoude.com/vbstech_network_names_hostname.php
' method2: https://msdn.microsoft.com/en-us/library/s6wt333f(v=vs.84).aspx
WScript.Echo "Method 1 "
Set wshShell = WScript.CreateObject( "WScript.Shell" )
strRegValue = "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname"
strHostName = wshShell.RegRead( strRegValue )
WScript.Echo "Host Name: " & strHostName
WScript.Echo "Method 2 (include other network values)"
Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "Domain = " & WshNetwork.UserDomain
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
WScript.Echo "User Name = " & WshNetwork.UserName
区别在于WshNetwork.ComputerName
方法以大写形式检索主机名。