PDA

Показать полную графическую версию : .: Файлы конфигурации 7z SFX. Помощь и советы :.


Страниц : 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

gora
22-02-2013, 22:29
RunProgram="hidcon:%%P:cmd /c If Exist \"C:\\Program Files (x86)\\vdf_fusebundle.zip\" Reg Add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce\" /v \"Update_and_del_vdf.bat\" /t REG_SZ /d \"cmd /c If Exist \\\"C:\\Program Files ^(x86^)\\Update_and_del_vdf.bat\\\" \\\"C:\\Program Files ^(x86^)\\Update_and_del_vdf.bat\\\"\" /f"

ZoRRo1
23-02-2013, 10:01
gora, спасибо огромное! всё работает :up
а в чем именно заключалась моя ошибка? (ну, кроме необязательных слэшекавычек вокруг пути реестра)
а то скобочки там как раз должны были быть ))) (хотя без усложнения этой команды они там и необязательны)

ZoRRo1
27-02-2013, 18:59
gora, не то, чтобы я вас тороплю, но может вы просто пропустили оповещение о моём предыдущем сообщении? :hi:

gora
27-02-2013, 20:22
кроме необязательных слэшекавычек вокруг пути реестра »
1 Кавычки и слеши расставляет SetTools (http://forum.oszone.net/thread-172130.html) и они здесь не мешают, хотя, при большом желании укоротить строку, можно и убрать.скобочки там как раз должны были быть »
2 Необязательно. Я не стал заключать одну команду после условия в блок. Команда сама содержит скобки, а скобки в блоке - это лишняя головная боль.
3 Для экранирования скобок в команде в данном случае достаточно одного знака "^", два уже лишку (они экранируют сами себя)
4 Добавил в конце команды Reg Add ключ /f.

Конфиг проверен перед выкладыванием и работает (после перезагрузки батник запускается).

ZoRRo1
27-02-2013, 21:32
они экранируют сами себя »
вот про это я не знал... хотя при 3-ёх экранах все работало, правда не так, как надо, но правильно (занося в реестр то, что и должно было занести) :sorry:
нда, с командной строкой нелегко совладать )))
ну и еще вопросик, но уже не совсем по теме (но в том же контексте команды конфига) - получается, что даже при усложнении (команды конфига в целом) не обязательно заключать подкоманду в блок?

gora
27-02-2013, 21:43
получается, что даже при усложнении (команды конфига в целом) не обязательно заключать подкоманду в блок? »
Это из синтаксиса батников, у нас по ним есть специальный форум (http://forum.oszone.net/forum-102.html), где можно получить любую консультацию от специалистов.
Блоки нужно использовать там, где в них есть необходимость, а где можно обойтись без них, там лучше их избегать. Пример необходимого использования блоков: посты 165, 166.

ZoRRo1
27-02-2013, 22:06
gora, а есть вообще способы узнать, что за ошибку выдаёт команда в конфиге при запуске?
про перенаправление вывода я знаю, но в конфиге (в командной строке всё нормально) у меня это почему-то не работает (если указать перед последней кавычкой и после всей основной команды) > \"%%S\\1.txt\"
собственно интересует, почему не работает вышеназванный вывод, и какими методами определения ошибок бат-команд в конфиге пользуетесь/пользовались вы ))

gora
28-02-2013, 12:36
какими методами определения ошибок бат-команд в конфиге пользуетесь/пользовались вы »
Удаляю префикс hidcon в строке и меняю ключ запуска cmd /c на cmd /k. При запуске видно окно консоли и видны ошибки, если они есть, в тестируемой строке.RunProgram="%%P:cmd /k ......

ZoRRo1
28-02-2013, 12:51
меняю ключ запуска cmd /c на cmd /k »
О! Про это я забыл, исправлюсь :sorry: :wink: . Может в FAQ добавить, чтобы и другие помнили? )))
Ещё раз Огромное Спасибо :yes:

ZoRRo1
28-02-2013, 14:50
(проблема решена, см. ниже)
gora, извините, что опять приходится вас теребить, но снова рабочая бат-команда не хочет после оптимизации работать в конфиге )))

и /k не работает (окно просто мелькает), как и перенаправление вывода

батник

cmd /c FOR /D %%d IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST "%%d:\Hs2S0p5pgKyx\" xcopy "%%d:\Hs2S0p5pgKyx\*" "С:\7ZipSfx.000\Hs2S0p5pgKyx\" /S /E /G /H /R /Y > 1.txt


конфиг

;!@Install@!UTF-8!
;
RunProgram="cmd /k FOR /D %%d IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST \"%%d:\\Hs2S0p5pgKyx\\\" xcopy \"%%d:\\Hs2S0p5pgKyx\\*\" \"%%T\\\" /S /E /G /H /R /Y > \"%%S\\1.txt\""
;
;пауза для проверки успешности копирования в папку распаковки
RunProgram="cmd /c pause"
;!@InstallEnd@!


проблему решил (посмотрел на похожее построение в вашем конфиге для 7-Zip 9.20 Final) - лишний знак % перед названием переменной d, т.к. в командной строке при использовании команды FOR нужен только один знак %, а в командном файле - уже два ))

правильно получилось так:

RunProgram="cmd /k FOR /D %d IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST \"%d:\\Hs2S0p5pgKyx\\\" xcopy \"%d:\\Hs2S0p5pgKyx\\*\" \"%%T\\\" /S /E /G /H /R /Y > \"%%S\\1.txt\""

Fortress1
28-03-2013, 08:45
Доброго утра всем! Вопрос такой - что я делаю неправильно - когда запускаю репак какой -либо программы сделанный на основе 7z SFX выдается ошибка "не является приложением вин32"? Заранее благодарю

gora
28-03-2013, 09:03
Fortress1
1 Приведите скриншот ошибки
2 Дайте ссылку на этотрепак какой -либо программы »
Этот репак не должен содержать вареза, ибо здесь он запрещен.
3 Возможная причина состоит в том, что этот SFX сделан специально для х64 систем и в нем использован х64 модуль. В этом случае x86 система (а не модуль) выдает подобное сообщение об ошибке.

sov44
10-04-2013, 09:38
Немного забуксовал с командой xcopy. Классическое файл или папка, как исправить?
RunProgram="fm5:cmd /c xcopy /y /n \"Program Options.xml\" \"%ALLUSERSPROFILE%\\Martau\\Total Uninstall 6\""

specialist
10-04-2013, 09:55
sov44, если нужно скопировать не каталог, а простой файл - имхо проще воспользоваться командой copy /y

sov44
10-04-2013, 10:06
Необходимо создать структуру каталогов и скопировать туда файл Program Options.xml, потому и xcopy.

specialist
10-04-2013, 10:21
RunProgram="fm5:hidcon:cmd /c md \"%ALLUSERSPROFILE%\\Martau\\Total Uninstall 6\" & copy /y \"Program Options.xml\" \"%ALLUSERSPROFILE%\\Martau\\Total Uninstall 6\""

бУРов
10-04-2013, 10:39
Может быть как-то вот так?
ROBOCOPY "%ALLUSERSPROFILE%\\Martau\\Total Uninstall 6" <destination> "Program Options.xml" /S

sov44
26-06-2013, 12:09
задача: если установлена Windows 7, то создать папку "C:\Users\[User name]\AppData\Roaming\picpick" и переместить в неё файл picpick.ini
написал, но выдаёт ошибку (часть кода)
SetEnvironment="w7=..\..\..\..\..\..\AppData\Roaming\picpick"
RunProgram="hidcon:cmd /c Ver | Find \""6.1"\" >Nul && (md \"%w7%\"& move \y \"%%T\\picpick.ini\" \"%w7%\")"
ошибка - http://savepic.org/3768911.jpg

gora
26-06-2013, 12:25
Удалите лишние кавычки в строке (веделил цветом)RunProgram="hidcon:cmd /c Ver | Find \""6.1"\" >Nul && (md \"%w7%\"& move \y \"%%T\\picpick.ini\" \"%w7%\")"

timon45
21-07-2013, 18:48
Как удалить папку (defaults) после распаковки (по пути ...\core\browser\defaults) внутри архива.
Нашел 3 варианта но что то не срабатывает
AutoInstall="hidcon:cmd /c del \\core\\browser\\defaults /q"
AutoInstall="hidcon:cmd /c Echo RD /s /q %2 >>..\\core\\browser\\defaults"
AutoInstall="hidcon:cmd /c RD /S /Q \\core\\browser\\defaults"




© OSzone.net 2001-2012