nikzzzz
  - Longevity: 10 years
- Posts: 3114
- REPUTATION:127[+] [-]
|
Ander_73 Ждет, результат можно проверить по %errorlevel% .
|
Ander_73
  - Longevity: 8 years 10 months
- Posts: 4134
- REPUTATION:127[+] [-]
|
Как под Win7 получить список содержимого ESD-архива? "Родной" DISM не поддерживает такой формат. Есть замечательная утилита wimlib, но она не понимает русские буквы в тэгах... После вдумчивого гугленья получен VBS-скрипт (назовём его xml_parser.vbs):Set oXML = CreateObject("Msxml2.DOMDocument") oXML.Load(WScript.Arguments(0)) Set nodes = oXML.getElementsByTagName(WScript.Arguments(1)) For Each node In nodes WScript.Echo node.text Next И теперь можно так::: получаем из ESD-архива (%file%) содержимое файла-описания в файл xml wimlib-imagex.exe info "%file%" --extract-xml xml :: получаем список тэгов <NAME> и записываем в файл list.txt в кодировке 1251 (для WSelect) for /f "delims=" %%i in ('cscript.exe //nologo xml_parser.vbs xml NAME') do call :getitem >nul chcp 866 exit :getitem if not defined cp >nul chcp 1251& set cp=1 :: трюк с передачей параметра через внутреннюю переменную; позволяет вывести _любые_ символы, в т.ч. кавычки и спец-символы for %%a in (1) do >>list.txt echo %%i *Примечание:- работает также с WIM и SWM (всё, что поддерживает wimlib)
- вывести можно список любых тэгов, а не только <NAME>
- требуется поддержка vbs (применение под WinPE ограничено)
|
loban_ser
  - Longevity: 7 years 9 months
- Posts: 577
- REPUTATION:24[+] [-]
|
|
 Отправлено: 13-Jul-2019 17:10
(after 1 month 15 days)
MinskHard
 - Longevity: 8 years 3 months
- Posts: 7
- REPUTATION:-1[+] [-]
|
Уважаемые"Гуру" помню где-то видел обсуждали но найти не могу. В шапке есть батник для запуска программы из искомой папки. Код отрабатывает на ура, папку ищет и необходимый exe-ник запускает вот только окно консоли висит пока не закроешь эту программу или саму консоль. Дописывал в конец кода :end, exit ничего не помогает, подскажите пожалуйста, или тыкните носом где обсуждали это !
|
vovan1982
  - Longevity: 10 years
- Posts: 1176
- REPUTATION:81[+] [-]
- Location: Ростов-на-Дону
|
MinskHard, так вы параметр /w (ждать завершения выполнения) уберитеstart /w %PUH%\wind\setup64.cmd Нужно такstart %PUH%\wind\setup64.cmd
Last edited by vovan1982 on 2019-07-13 22:52; edited 1 time in total
|
MinskHard
 - Longevity: 8 years 3 months
- Posts: 7
- REPUTATION:-1[+] [-]
|
Огромное спасибо, всё получилось !
|
 Отправлено: 12-Feb-2021 15:48
(after 1 year 6 months)
Ander_73
  - Longevity: 8 years 10 months
- Posts: 4134
- REPUTATION:127[+] [-]
|
Интересный способ определить битность файла (exe или dll):@echo off for /f "tokens=3" %%a in ('2^>nul 7z.exe l -tpe %1^| find "CPU = "') do ^ if "%%a"=="x86" (echo App is a x86) else if "%%a"=="x64" echo App is a x64 Нужно: - установленный 7z (или прописанный в PATH) - запуск: run.cmd "file_name.exe"
Last edited by Ander_73 on 2021-02-13 09:07; edited 1 time in total
|
 Отправлено: 12-Feb-2021 17:50
(after 2 hours 2 minutes)
UserX
  - Longevity: 10 years
- Posts: 866
- REPUTATION:44[+] [-]
|
83262Интересный способ определить битность файла (exe или dll): Чисто теоретически этот код допускает не увидеть никакого из двух сообщений - "App is a x86" или "App is a x64". Такое возможно практически?
|
Ander_73
  - Longevity: 8 years 10 months
- Posts: 4134
- REPUTATION:127[+] [-]
|
UserX, только сейчас заметил, что да  Если подсунуть батнику sfx-архив самого 7z. Обойти легко: добавить ключ -tpe
|
 Отправлено: 18-Dec-2021 09:41
(after 3 months 9 days)
loban_ser
  - Longevity: 7 years 9 months
- Posts: 577
- REPUTATION:24[+] [-]
|
Нужно было как-то получить доступ к ветке реестра, написал батничек для смены владельца и получения прав для Администраторы / Пользователи / Systemreg_acces.bat@Echo off for /f "tokens=3" %%a in ( '2^>nul reg query "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v ACP' ) do >nul 2>&1 chcp %%a cd /d %~dp0 @(mshta "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"& echo.)>>"out.txt" for /f "tokens=1 delims=" %%a in (out.txt) do set "f=%%a" del /q /f "out.txt" set "reg=%f:~-3%" If Not Exist "%APPDATA%\Repozitory" md "%APPDATA%\Repozitory" rem Создание резервной копии прав на раздел SetACL.exe -on "%f%" -ignoreerr -ot reg -actn list -lst "w:o,d,s,g;f:sddl" -bckp "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" -rec cont_obj rem Смена владельца раздела rem Получение прав полного доступа для текущего пользователя SetACL.exe -on "%f%" -ignoreerr -ot reg -actn setowner -ownr "n:S-1-5-32-544" -actn ace -ace "n:S-1-5-32-545;p:full" -ace "n:S-1-5-18;p:full" -rec cont_obj -actn clear -clr "dacl,sacl" -actn rstchldrn -rst "dacl,sacl" |find /i "SetACL finished successfully." If %errorlevel% LSS 1 ( %windir%\system32\cAu3.exe "MsgBox('64','Внимание!','Полными владельцами:' & @CRLF & '%f%' & @CRLF & 'установлены: Администраторы / Пользователи / System',10)" ) Exit Ну и восстановление правRestore_reg_acces.bat@Echo off for /f "tokens=3" %%a in ( '2^>nul reg query "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v ACP' ) do >nul 2>&1 chcp %%a cd /d "%~dp0" @(mshta "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"& echo.)>>"out.txt" for /f "tokens=1 delims=" %%a in (out.txt) do set "f=%%a" del /q /f "out.txt" set "reg=%f:~-3%" If Exist "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" ( rem Восстановление владельца и прав из резервной копии SetACL.exe -on "%f%" -ignoreerr -ot reg -actn restore -bckp "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" -rec cont_obj -silent SetACL.exe -on "%f%" -ot reg -actn setprot -op dacl:np -silent SetACL.exe -on "%f%" -ot reg -actn clear -clr dacl,sacl -silent If %errorlevel% LSS 1 ( %windir%\system32\cAu3.exe "MsgBox('64','Внимание!','Права на куст:' & @CRLF & '%f%' & @CRLF & 'Восстановлены!',10)" del /q /f "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" ) ) Exit /B требует дополнительных утилит SetACL и cAu3-консольный autoit добавил в контекстное меню
 regWindows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\reg_owner] "SubCommands"="reg_owner_act;reg_owner_rest" "MUIVerb"="Права ветки реестра" "Icon"="Regedit.exe,-0" "Position"="1" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\reg_owner_act] @="Смена владельца раздела" "HasLUAShield"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\reg_owner_act\command] @="mshta.exe vbscript:close(CreateObject(\"Shell.Application\").ShellExecute(\"cmd\",\"/c C:\\Windows\\System32\\reg_acces.bat\",\"\",\"runas\",0))" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\reg_owner_rest] @="Восстановление владельца и прав из резервной копии" "HasLUAShield"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\reg_owner_rest\command] @="mshta.exe vbscript:close(CreateObject(\"Shell.Application\").ShellExecute(\"cmd\",\"/c C:\\Windows\\System32\\Restore_reg_acces.bat\",\"\",\"runas\",0))"
|
Ander_73
  - Longevity: 8 years 10 months
- Posts: 4134
- REPUTATION:127[+] [-]
|
loban_ser, зачем нужен cAu3? Используй тот же VBS. Всего-то надо вывести одно инфо-окно.
|
loban_ser
  - Longevity: 7 years 9 months
- Posts: 577
- REPUTATION:24[+] [-]
|
Ander_73, Я привык уже к нему, он "облегчает жизнь" функционал расширен чем у cmd, по этому и пользую, а так-то конечно можноmshta vbscript:close(CreateObject("wscript.shell").Popup("test"^&vbCrLf^&"test",,"test",^&H20)) mshta vbscript:close(CreateObject("wscript.shell").Popup("Полными владельцами:"^&vbCrLf^&"%f%"^&vbCrLf^&"установлены: Администраторы / Пользователи / System",,"Внимание!",64)) mshta vbscript:close(CreateObject("wscript.shell").Popup("Права на куст:"^&vbCrLf^&"%f%"^&vbCrLf^&"Восстановлены!",,"Внимание!",64))
Last edited by loban_ser on 2021-12-18 11:04; edited 3 times in total
|
loban_ser
  - Longevity: 7 years 9 months
- Posts: 577
- REPUTATION:24[+] [-]
|
@Echo off for /f "tokens=3" %%a in ( '2^>nul reg query "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v ACP' ) do >nul 2>&1 chcp %%a cd /d %~dp0 for /f "delims=" %%a in ( 'mshta "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"' ) do set "f=%%a" set "reg=%f:~-3%" 2>nul md "%APPDATA%\Repozitory" rem Создание резервной копии прав на раздел SetACL.exe -on "%f%" -ignoreerr -ot reg -actn list -lst "w:o,d,s,g;f:sddl" -bckp "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" -rec cont_obj rem Смена владельца раздела rem Получение прав полного доступа для текущего пользователя SetACL.exe -on "%f%" -ignoreerr -ot reg -actn setowner -ownr "n:S-1-5-32-544" -actn ace -ace "n:S-1-5-32-545;p:full" -ace "n:S-1-5-18;p:full" -rec cont_obj -actn clear -clr "dacl,sacl" -actn rstchldrn -rst "dacl,sacl" |find /i "SetACL finished successfully." && mshta vbscript:close(CreateObject("wscript.shell").Popup("Полными владельцами:"^&vbCrLf^&"%f%"^&vbCrLf^&"установлены: Администраторы / Пользователи / System",,"Внимание!",64)) Exit @Echo off for /f "tokens=3" %%a in ( '2^>nul reg query "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v ACP' ) do >nul 2>&1 chcp %%a cd /d "%~dp0" for /f "delims=" %%a in ( 'mshta "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"' ) do set "f=%%a" set "reg=%f:~-3%" If Exist "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" ( rem Восстановление владельца и прав из резервной копии SetACL.exe -on "%f%" -ignoreerr -ot reg -actn restore -bckp "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" -rec cont_obj -silent SetACL.exe -on "%f%" -ot reg -actn setprot -op dacl:np -silent SetACL.exe -on "%f%" -ot reg -actn clear -clr dacl,sacl |find /i "SetACL finished successfully." && mshta vbscript:close^(CreateObject^("wscript.shell"^).Popup^("Права на куст:"^&vbCrLf^&"%f%"^&vbCrLf^&"Восстановлены!",,"Внимание!",64^)^) del /q /f "%APPDATA%\Repozitory\%reg:\=_%_quick_access_acl.bkp" ) Exit
|
Page 6 of 8
Current time is: 05-Dec 10:41
All times are UTC + 3
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|