![]() |
Выполнение комманд из реестра?
Пример.
Код:
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\RunOnce"; ValueType: string; ValueName: "reg.exe"; ValueData: "cmd.exe /c reg copy HKLM\Software\$$ HKCU /s /f &xcopy {win}\$\AppData {reg:HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList,ProfilesDirectory}\{username}\AppData /eciqhry &xcopy {win}\$\ProgramData {commonappdata} /eciqhry"; Flags: noerror; Permissions: everyone-full Вобщем я пришёл к выводу, что лучше запускать всю строку под управлением cmd.exe /c Однако, хотелось бы знать как правильно и почему, мне кажется этот вопрос касается ShellExecute, в том плане, что в cmd/bat возможно другие правила, а в работе в открытом cmd.exe другие правила, поэтому хочется выяснить, чтобы не делать ошибок. :) |
|
Цитата:
Цитата:
[HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce] "reg.exe"="cmd.exe /c reg copy HKLM\Software\$$ HKCU /s /f &xcopy D:\App C:\Users\Administrator\AppData /eciqhry &xcopy D:\Pro C:\ProgramData /eciqhry Меня волнует только, почему xcopy без cmd.exe /c не работает из "пуск выполнить", что то же самое из RunOnce насколько я понимаю. Хотя понятно, на то он и команд процессор, чтобы командовать :) Может быть дело даже не в xcopy, а в связке &амперсендов которым нужен cmd.exe? Вобщем ликбез) |
Что такое «$$», «$»?
Цитата:
Цитата:
В общем и целом: то, что есть команда, должно быть заключено в кавычки: Код:
{%COMSPEC} /c"reg copy HKLM\Software\$$ HKCU /s /f &xcopy {win}\$\AppData {reg:HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList,ProfilesDirectory}\{username}\AppData /eciqhry &xcopy {win}\$\ProgramData {commonappdata} /eciqhry" Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Всётаки у меня не получилось! Либо xcopy не копирует скрытые файлы, либо тут дело в другом, может быть что-то ещё. Вот такой набор ключей использовал /eciqhry, хотя /s - системные я позабыл, может быть в этом причина. Вобщем я хотел скопировать в папки Administrator\AppData\Local и Administrator\AppData\Roaming свои папки с контентом из раздела реестра RunOnce через cmd /c, очевидно что не скопировались папки в скрытые директории, другие, например, скопировались. Видимо надо было /s добавить. Профиль Administrator со всеми нужными подпапками ведь должен существовать когда RunOnce выполняется.. Вход в систему тоже под Администратором разумеется, поэтому тут права роль не играют. |
Ясно.
Цитата:
|
Время: 21:20. |
Время: 21:20.
© OSzone.net 2001-