使用cscript输出“ipconfig / all”但文本文件为空

时间:2017-02-08 11:46:10

标签: vbscript io-redirection wsh

我正在尝试提取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")

当涉及到改变事物时,我的想法不合时宜。

2 个答案:

答案 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)

这种方法有两个问题

  1. 由于@Ansgar-Wiechers points out >重定向是CMD的一部分。

  2. 重定向工作后,您必须从执行的命令中检索标准输出并将其重定向到cscript.exe输出。很遗憾,.Run()无法提供对标准输出流的访问权限,您必须使用.Exec()

  3. 这是一个示例(假设所有文件在同一方向,但可以修改);

    ' 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
    ...
    

    ... 因可读性和敏感数据被删除而被截断