是否可以使用Pascal运行此Windows命令?

时间:2017-01-21 09:23:28

标签: windows cmd freepascal

我想在Pascal中使用此命令。有可能吗?

for /r %i in (boom.lpi) do xcopy /Y "%i" z:\

我试过了:

exec('p:','for /r "%i" in (boom.lpi) do xcopy /Y "%i" "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"');  

1 个答案:

答案 0 :(得分:0)

您需要在shell上执行shell命令。 Exec和朋友没有标准地执行shell,因此您需要找到shell(cmd.exe或command.com,具体取决于您要运行的命令),然后使用/ c参数执行它。

最好使用Sysutils.ExecuteProcess,因为它避免了引用exec所带来的一些问题。未经测试的概念代码:

 ExecuteProcess(getenvironmentvariable('comspec'),['/c',' for /r %i in (boom.lpi) do xcopy /Y "%i" z:\']);

您可能希望了解execute programs in Free Pascal

的更新方法