Windows - Sende mange kommandoer, input og hold CMD Live

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at sende anden kommando til cmd.
i cmd må jeg måske gøre det her


Microsoft Windows [Version 10.0.14986]
(c) 2016 Microsoft Corporation. All rights reserved.
C:WINDOWSsystem32>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:>


Skift til drev D> indstil en variabel> skriv svaret> skriv det til en fil og læs det.

inline kode er:

cmd.exe /c "D: & set/p a=write a text : & echo \%a\% > sample.txt & type sample.txt & pause"


det sutter, når jeg vil bruge det i VB Script. mens jeg forsøger at få kommando, vil jeg tage det ud til filen. Men hvordan hvis der er en anmodning om input som:


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


og når jeg sender kommando til den. det vil automatisk afslutte hvis det er færdigt med opgaven som


CreateObject("WScript.Shell").run "cmd.exe /c ping google.com > myfile.txt
'After finish pinging it will auto exit.


Og mit spørgsmål er, hvordan jeg sender input til cmd. Og hvordan jeg holder cmd'en stadig i live

Nogle ideer?

Åh ja. Jeg vil ikke bruge batch-filen til at udføre den.

Bedste reference


En mulighed ville være at bruge pipekommunikation mellem din VB6-proces og din CMD-proces. Se venligst under Windows API-funktioner:



  1. CreatePipe (kernel32)

  2. CreateProcess (kernel32) => cmd uden/c flag

  3. ReadFile/WriteFile på rørhåndtag for at læse/skrive cmd input/ouput



Oprettelse af en børneproces med omdirigeret indgang og udgang [10]

Andre referencer 1


Pause og cmd/k skal gøre dit arbejde.


Se linket til reference.


I VBA kan du gøre noget som dette:


Set objShell = CreateObject(“Wscript.Shell”)

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


Her er en anden VBscript reference