在Delphi 2010应用程序中运行cmd脚本,但不将其作为批处理文件写入磁盘
有没有一种方法可以运行复杂的命令脚本(批处理文件),而不将其写入磁盘在Delphi 2010应用程序中运行cmd脚本,但不将其作为批处理文件写入磁盘,delphi,batch-file,delphi-2010,Delphi,Batch File,Delphi 2010,有没有一种方法可以运行复杂的命令脚本(批处理文件),而不将其写入磁盘 我想在备忘录中键入我的脚本,然后按下按钮执行脚本,而不首先将其写入磁盘。这是我测试的解决方案,它可以工作。 谢谢你的回答 var: script_lines:string; script_lines:='hostname & getmac & ipconfig /all & tasklist'; ShellExecute(Handle, 'open', PChar('cmd.exe'), PChar
我想在备忘录中键入我的脚本,然后按下按钮执行脚本,而不首先将其写入磁盘。这是我测试的解决方案,它可以工作。 谢谢你的回答
var: script_lines:string;
script_lines:='hostname & getmac & ipconfig /all & tasklist';
ShellExecute(Handle, 'open', PChar('cmd.exe'), PChar('/k '+script_lines), nil, SW_SHOW);
不,没有。CMD.EXE希望解析文本文件以获取命令,或从命令行接收命令。如果你正在做一些需要脚本的事情,它必须在一个文件中。这取决于脚本的实际功能。正如您所说,命令可以作为命令行参数传递给CMD.EXE,所以您可以在命令后面加上
/C
参数来输出CMD.EXE。这意味着为每个命令启动一个新的CMD.EXE进程。您可以使用“&&”操作符将多个命令链接在一个shell out中。但接下来,您需要分析脚本,以了解什么是安全的,什么是可链接的,等等。最好切换到IActiveScript
,这样您就可以在内存中运行VBScript/JavaScript代码,而不是运行CMD.EXE。