0

Colls,我写了一个脚本,它应该:

  1. 将文件从 C:\PR\DataFiles\Input\CL_CH5\"+k+"\ext_028042012.dat 复制到 C:\PR\DataFiles\Input\ext_028042012.dat - 工作正常

  2. 使用指定的命令行运行 cmd.exe (p.3)

  3. 运行 cmd.exe 后,脚本应该转到 c: 磁盘,然后将目录更改为 c:/pr,然后在 cmd 行中写入 «process.bat c:\pr ext_028042012.dat auto» 并按 Enter。

代码是

 var fso = new ActiveXObject("Scripting.FileSystemObject");  
     for (var k = -2; k <= 0; k++)  
     {  
         var out_dir = "C:\\PROBE\\DataFiles\\Input\\CL_CH5";  
         // now i am copying a ext_028042012 to destination folder    
         fso.CopyFile("C:\\PR\\DataFiles\\Input\\CL_CH5\\"+k+"\\ext_028042012.dat",                                                                            
         "C:\\PR\\DataFiles\\Input\\ext_028042012.dat", 1);  
         WScript.Echo(k+"file copied.");  
         /*Block which run cmd window*/  
         //The following code should open a command window, changes to the path to C:\ ,   and executes the DIR command.
         var oShell = WScript.CreateObject ("WScript.Shell");  
         **oShell.run ("cmd /K cd c:\pr /K process.bat c:\ext_028042012.dat auto");**  
         WScript.Echo(k+ "file proceed!!!");
  1. 不幸的是,它不起作用。脚本不会将 p.3 中的命令行放到打开的 cmd.exe 窗口中。请告诉我我的错误在哪里。十分感谢。
4

1 回答 1

1

你的命令字符串,

"cmd /K cd c:\pr /K process.bat c:\ext_028042012.dat auto"

看起来是错误的。我不相信你可以指定几个/K这样的命令——因为它的意思/K“执行命令并继续”,永远不会结束你启动的第一个 shell。

你有没有尝试过:

"cmd /K cd c:\pr && process.bat c:\ext_028042012.dat auto"
于 2012-04-30T05:33:12.393 回答