我正在尝试提取ipconfig /all
输出并将其放入文本文件中。我创建了一个运行ipconfig
的小VBScript而没有问题。然后我在另一个VBScript中调用它。所有这些都运行,但输出文本文件仍然为空,并且在ipconfig.vbs
运行后,主VBScript似乎没有写任何内容。
以下是主.vbs脚本的示例:
' Pulling network config
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("C:\Users\dsadmin\Desktop\LogNet\network_config.txt", 8)
set objFile = objFSO.OpenTextFile("C:\Users\dsadmin\Desktop\LogNet\network_config.txt")
objShell.Run("cscript //nologo C:\Users\dsadmin\Downloads\ipconfig.vbs >C:\Users\dsadmin\Desktop\LogNet\network_config.txt")
这是它调用的脚本(ipconfig.vbs):
Set objShell = CreateObject("WScript.Shell")
objShell.Run("ipconfig /all")
当涉及到改变事物时,我的想法不合时宜。
答案 0 :(得分:1)
重定向(>
)是CMD内置功能。您需要在CMD中运行该语句才能使用它:
objShell.Run "%COMSPEC% /c cscript //NoLogo C:\ipconfig.vbs >C:\network_config.txt"
当然,您需要确保第二个脚本首先写入STDOUT,如@Lankymart所指出的那样。
如果您的第二个脚本都运行ipconfig /all
,那么将它包装在单独的脚本中没有多大意义。直接运行它:
objShell.Run "%COMSPEC% /c ipconfig /all >C:\network_config.txt"
答案 1 :(得分:1)
这种方法有两个问题
由于@Ansgar-Wiechers points out >
重定向是CMD的一部分。
重定向工作后,您必须从执行的命令中检索标准输出并将其重定向到cscript.exe
输出。很遗憾,.Run()
无法提供对标准输出流的访问权限,您必须使用.Exec()
。
这是一个示例(假设所有文件在同一方向,但可以修改);
' Pulling network config
Set objShell = CreateObject("WScript.Shell")
Call objShell.Run("%COMSPEC% /c cscript //nologo ipconfig.vbs > network_config.txt")
ipconfig.vbs中的
Set objShell = CreateObject("WScript.Shell")
Set exec = objShell.Exec("ipconfig /all")
'Redirect output from executed command to the script output.
Call WScript.StdOut.Write(exec.StdOut.ReadAll)
network_config.txt中的输出
Windows IP Configuration
Host Name . . . . . . . . . . . . :
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . :
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . :
Wireless LAN adapter Local Area Connection* 2:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter
Physical Address. . . . . . . . . :
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
...
... 因可读性和敏感数据被删除而被截断