-1
我想在Pascal中使用这个命令。可能吗?可以用Pascal运行这个Windows命令吗?
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"');
没有DOS了,你运行的是Windows。该命令将由Windows命令外壳“cmd.exe”解释。调用'CreateProcess'来创建一个新的'cmd.exe'过程,将该命令作为参数传递。但是,不要这样做。这真是令人震惊的主意。如果你想复制文件,就这样做。使用系统API来做到这一点。 –
@LetalGamer David Heffernan绝对是对的。我很确定你没有使用DOS(磁盘操作系统),而是Windows命令行。将鼠标指针移动到标记__dos__上或者读取此标记的[info](http://stackoverflow.com/tags/dos/info)。请__edit__您的问题,删除标签__dos__,并更好地使用Markdown语法格式化问题,如帮助页[Markdown编辑帮助](http://stackoverflow.com/editing-help)中所述。如果使用API而不是使用命令进程在pascal应用程序中创建文件副本,那绝对会更好。 – Mofi
不建议在FreePascal上直接调用CreateProcess,因为有很多更好的选择:http://wiki.freepascal.org/Executing_External_Programs –