发送许多命令,输入并保持CMD活着

时间:2017-01-21 09:06:56

标签: windows vbscript cmd

我尝试向cmd发送第二个命令。 在cmd中也许我应该这样做

Microsoft Windows [Version 10.0.14986]
(c) 2016 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>D:
D:\>set /p a=Write a text :
Write a text : This is a sample
D:\>echo %a% > sample.txt
D:\>type sample.txt
This is a sample
D:\>

更改为驱动器D>设置变量>写下答案>将其写入文件并阅读。
内联代码是:
cmd.exe /c "D: & set/p a=write a text : & echo %a% > sample.txt & type sample.txt & pause"

当我想在VB Script中使用它时,它很糟糕。当我试图获得命令时,我会把它拿出去归档。但是如果有输入请求如何:

Press any key to continue...
Are you sure you want to continue? (Y/n)
Ping an IP : (xxx.xxx.xxx.xxx)

当我发送命令时。如果它完成了像

这样的任务,它将自动退出
CreateObject("WScript.Shell").run "cmd.exe /c ping google.com > myfile.txt
'After finish pinging it will auto exit.

我的问题是,我如何向cmd发送输入。我如何保持cmd仍然活着
有任何想法吗?
哦是的。我不会使用批处理文件来执行它。

2 个答案:

答案 0 :(得分:0)

暂停 cmd / k 应该完成您的工作。

请参阅LINK以供参考。

在VBA中,您可以这样做:

Set objShell = CreateObject(“Wscript.Shell”)

objShell.Run(“%comspec% /k ipconfig /all”)

这是另一个VBscript reference

答案 1 :(得分:0)

一种可能性是在VB6进程和cmd进程之间使用管道通信。请查看以下Wi​​ndows API函数:

  1. CreatePipe(kernel32)
  2. CreateProcess(kernel32)=>没有/ c标志的cmd
  3. 管道句柄上的
  4. ReadFile / WriteFile用于读取/写入cmd输入/输出
  5. Creating a Child Process with Redirected Input and Output