首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBScript环境变量%COMPUTERNAME.

VBScript环境变量%COMPUTERNAME.
EN

Stack Overflow用户
提问于 2012-07-26 01:04:58
回答 2查看 25.4K关注 0票数 3

我正在寻找有关环境变量%COMPUTERNAME%的帮助。它在我的脚本中用作以本地主机名命名文件的方法。在另一点上,我使用该脚本在网络上的不同目录(到映射驱动器)中构建了一个文件夹,我需要将该文件夹命名为原始计算机的本地主机名。这可能没有意义,但我将在下面提供一个示例:

代码语言:javascript
复制
Comp1 = BobPC
Comp2 = JakePC

我在BobPC上制作了一个压缩文件,然后将其复制到JakePC上,但我需要将此文件复制到一个目录中,例如...C:\CopiedFiles\BobPc,因为此脚本将在多台计算机上运行,并且每台计算机都需要一个文件夹,文件将位于其中,并以其所在的计算机命名。

我希望这是有意义的。

现在,我可以让它构建一个文件夹,但是它将它命名为"JakePC“,这显然是因为我使用环境变量来获取本地主机名。

我的问题基本上是,我如何才能告诉它以原始计算机的名字命名文件夹?

如果您有任何问题,请让我知道,我将非常乐意解释,因为我知道我可能没有太大的意义。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-27 21:25:18

如果您从源pc运行该脚本,可以使用以下命令

代码语言:javascript
复制
dim oFso, oShell, oShellEnv, computerName, target, source
const overwrite = true
set oFso      = CreateObject("Scripting.FileSystemObject")
set oShell    = WScript.CreateObject("WScript.Shell")
set oShellEnv = oShell.Environment("Process")
computerName  = oShellEnv("ComputerName")
source =  "c:\test\yourZip.zip"
target = "\\JakePC\copiedFiles\" & computerName & ".zip"
'copiedFiles needs to be a share with write permission for the user who runs the script
oFso.CopyFile source, target, overwrite
'do check on errors and the cleanup of your objects

如果您从targetpc运行它,您应该使用远程脚本,但这并不明智,因为您必须知道需要运行它的pc的名称,所以不需要环境变量。

票数 6
EN

Stack Overflow用户

发布于 2016-12-07 23:17:10

我找到了两个片段来获取主机名。两者都可以在windows 7 sp1和windows server 2012中正常运行:

代码语言:javascript
复制
'
' 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方法检索大写的主机名。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11654952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档