That I don't know.
Several options come to mind:
- Implement the required functions in Perl so I don't have to call a bunch of other executables
- Run each command separately (system, backticks or whatever), reading output back into perl, then present the output as appropriate, rather than trying to manage a bunch of separate command windows and processes running cmd.exe
- Compose a batch file then run it
- Try to establish a pipe to STDIN of cmd.exe and feed it commands, but then probably need something like IPC3::Open and Expect (but maybe not Expect itself on Windows - I don't know if it works there) and it quickly gets more complicated.
Having a *nix background, I don't much like the Windows way of doing process management. I find they make simple things, like process management and IPC very hard to do. For example, I still haven't found a simple way to get unbuffered I/O between a parent process and its child, or do anything like what process groups make easy on *nix. Being lazy, I do my best to avoid such issues. But this is my fault - probably not something you should emulate.
| [reply] [d/l] [select] |
Thanks for your information ig.
Is it possible to open duplicate session in unix using Perl?
| [reply] |
| [reply] |
is there any way to capture the output in that newly opened command prompt.
| [reply] |
| [reply] |
$processObj->Kill(0);
is not working for me to close the created process object, can anyone help me on this.
thanks,
Sarath S
| [reply] |
my $cmd = "adb shell cat /proc/kmsg | tee kernel_logs.txt";
print $cmd;
my $processObj;
Win32::Process::Create(
$processObj,
"C:/windows/system32/cmd.exe",
"cmd.exe /k $cmd",
0,
NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE,
"."
)|| die ErrorReport();
sleep(3);
$processObj->Kill(0);
this was my code, but after sleep processObj is not getting killed.
| [reply] |