|
#1
|
|||
|
|||
Multiple dos cmds in a cmd box does not seem to work
in win xp if i go to a dos box ( via run , cmd ) and type at the cmd prompt,
echo Hello & dir & echo hello again I get H:\tmp> H:\tmp>echo Hello & dir & echo hello again Hello Volume in drive H is Homedirs Volume Serial Number is E4A4-69C6 Directory of H:\tmp 11/09/2003 01:59 PM <DIR> . 11/09/2003 01:59 PM <DIR> .. 0 File(s) 0 bytes 2 Dir(s) 8,605,827,072 bytes free hello again which id the expected output. But if i put the same command in Progam/command VB pro gives Failed to create process: The system cannot find the file specified. Should not i get the same output as from the dos command line - or how do i enter multiple dos commands in the one command box , without piping |
#2
|
|||
|
|||
Command shell capabilities such as internal commands like echo, dir, copy, etc., and multiple commands (&), piping (|), and redirection (> >>) are implemented by the Command Interpreter (cmd.exe). Prefix your command string with '%DOSCMD% ' to have it run under the command interpreter and enable this functionality; otherwise VBP will attempt to execute the program 'echo'. This is the explanation from the 'Run Program' help topic (looks like it needs to be updated to mention & as well):
Note: To run batch files (.bat), command scripts (.cmd), or individual shell commands, the command should be prefixed with the DOSCMD system macro (i.e., %DOSCMD% "C:\MyBatch.bat" arg1 arg2 or %DOSCMD% copy "%PROJDIR%\Test.exe" \\server\deploy) so that the command is executed under a command shell/interpreter. Also, if you need to redirect (> or >>) or use piping (|) on the output of an executable, the command should also be prefixed with DOSCMD, since the command interpreter is what implements redirection/piping. |
#3
|
|||
|
|||
I made a mistake. I understand why need to have '%DOSCMD% .
I can not believe i missed the problem , but i did. |
|
|