Я хочу использовать эту команду с Pascal. Является ли это возможным?Можно ли запустить эту команду Windows с помощью 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"');
Там нет DOS больше, вы работаете в Windows. Эта команда будет интерпретирована командной оболочкой Windows 'cmd.exe'. Вызовите 'CreateProcess' для создания нового' cmd.exe' процесса, передающего команду в качестве аргумента. Однако не делайте этого. Это действительно потрясающая идея. Если вы хотите скопировать файлы, сделайте это. Для этого используйте системный API. –
@LetalGamer Дэвид Хеффернан абсолютно прав. Я совершенно уверен, что вы не используете DOS (Disk Operating System), а в командной строке Windows. Переместите указатель мыши на тег __dos__ или прочитайте [info] (http://stackoverflow.com/tags/dos/info) этого тега. Пожалуйста, __edit__ ваш вопрос, удалите тег __dos__ и лучше отформатируйте свой вопрос, используя синтаксис Markdown, как описано на странице справки [Справка по редактированию разметки] (http://stackoverflow.com/editing-help). И было бы лучше сделать копию файла в вашем приложении pascal с помощью API вместо использования командного процесса. – Mofi
Вызов CreateProcess напрямую не рекомендуется FreePascal, так как существует множество лучших вариантов: http://wiki.freepascal.org/Executing_External_Programs –