|
Компьютерный форум OSzone.net » Зона тестирования » Тест-форум » Тестирование утилиты для подсветки батников |
|
|
Тестирование утилиты для подсветки батников
|
Ушёл из жизни Сообщения: 6021 |
Профиль | Отправить PM | Цитировать
Утилита от AZJIO размещена здесь.
Можете потестировать и выложить батники с проблемной подсветкой в этой ветке. @Echo Off SetLocal EnableDelayedExpansion :: ======================================================= :: Файлы можно скачать здесь: :: http://download.virtualbox.org/virtualbox/vboxdownload.html#windows :: ======================================================= :: Размер словаря (МБ), измените, если у Вас недостаточно оперативной памяти :: Set dictUser=32 :: Установить 1 для удаления языков и документации Set lite=1 :: Установить 1 для принудительной упаковки консольным архиватором (при проблемах с упаковкой) Set consol=1 :: ======================================================= Title Создание аддона Virtual Box If "%Time:~0,1%"==" " (Set tt=0%Time:~1,1%-%Time:~3,2%) Else Set tt=%Time:~0,2%-%Time:~3,2% Echo Запущено %Date% в %tt% Echo Подготовка ... Call :Sec strt1 Call :_DelTemp Del /Q Virtu*.* 1>Nul 2>&1 MD Temp 1>Nul 2>&1 Set xOS=x86& If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64 If "%xOS%"=="x86" Set ProgramW6432=%ProgramFiles%& Set ProgramFiles(x86)=%ProgramFiles% :: ======================================================= :: Путь к установленному архиватору 7-Zip без слеша в конце. Если у Вас путь нестандартный, то впишите АБСОЛЮТНЫЙ путь. Set path7Zip=%ProgramW6432%\7-Zip rem Echo %path7Zip% :: ======================================================= Call :_TestSys For %%i In ("download\*.exe") Do Set nameExe=%%~nxi If Not Defined nameExe Call :_Abort "Отсутствует дистрибутив VirtualBox (.exe файл)." For /F "tokens=2,3 delims=-" %%i In ("%nameExe%") Do ( Set verexe=%%i Set Build=%%j Set nVer=%%i-r%%j ) Set VerC=%verexe:.=,%,0 Copy bin\7zsd_LZMA2.sfx Temp\7zsd_LZMA2.sfx>Nul For /F "tokens=* delims=" %%i In (bin\ver.rc) Do ( Set ti=%%i Set ti=!ti:02.12.2010=%Date%! Set ti=!ti:1,18,6,1444=%VerC%! Set ti=!ti:3.2.12=%verexe%! Set ti=!ti:68302=%Build%! Echo !ti! >>Temp\ver.rc ) bin\Rc.exe /r /fo Temp\ver.res Temp\ver.rc>Nul bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, Temp\ver.res,,, bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, bin\101.ico, Icon, 101, Del bin\ResHacker.ini bin\ResHacker.log >nul Set FullName=VirtualBox_%verexe%_x86_x64 MD Temp\%FullName%\Files\ForceCopy\SVCPACK 1>Nul 2>&1 Echo Распаковка %nameExe% ... Set pmsi=%cd%\Temp PushD Temp ..\download\%nameExe% -x -s -p "%pmsi%" For %%i In (*.msi) Do ( Set tn=%%~ni Set x!tn:~-2!=%%~ni ) Echo Создание админ. точки из %x86% ... msiexec /a "%pmsi%\%x86%.msi" /qn TARGETDIR="%pmsi%\%x86%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x86). Повторите." Echo Создание админ. точки из %x64% ... msiexec /a "%pmsi%\%x64%.msi" /qn TARGETDIR="%pmsi%\%x64%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x64). Повторите." If %lite%==1 ( Echo Удаление мусора из админ. точек ... For %%i In ("%x86%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x86%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x86%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" For %%i In ("%x64%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x64%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x64%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" ) Call :_sizedir "%x86%" Set /A All += dirsize Call :_sizedir "%x64%" Set /A All += dirsize, AllMB = All/1024/1024 Echo Дост. словарь - !AllMB! МБ (исходя из размера данных !All!) Echo Упаковка админ. точек в архив ... Call :compr "Упаковка админ. точек в архив" "2in1.7z %x86% %x64%" Echo Упаковка архива админ. точек и автономного архиватора в архив ... Set tcomline=%comline% Set comline=-mx0 Call :compr "Упаковка архива админ. точек и автономного архиватора" "VirtuBox.7z 2in1.7z ..\bin\7zr.exe ..\bin\PrivateHash.exe" Set comline=%tcomline% Echo Создание SFX Copy ..\bin\VirtualBox_config.txt >Nul (Echo SetEnvironment="Vers= v%verexe%" Echo SetEnvironment="nVer=%nVer%" Echo ;^^!@InstallEnd@^^!)>>VirtualBox_config.txt Copy /b ..\Temp\7zsd_LZMA2.sfx + VirtualBox_config.txt + VirtuBox.7z ..\VirtuBox.exe>Nul Copy ..\VirtuBox.exe %FullName%\Files\ForceCopy\SVCPACK\ >Nul Echo VirtuBox.exe -ai -gm2 -fm0>%FullName%\Run (Echo └ффюэ VirtualBox v%verexe% [x86/x64] Echo. Echo ╤юфхЁцшЄ фтх тхЁёшш ^(x86 ш x64^). ╧Ёш єёЄрэютъх ЁрчЁ*фэюёЄ№ ёшёЄхь√ юяЁхфхы*хЄё* Echo ртЄюьрЄшўхёъш ш єёЄрэртыштрхЄё* ёююЄтхЄёЄтє■∙р* тхЁёш* тшЁЄєры№эющ ьр°шэ√. Echo. Echo VirtualBox - тшЁЄєры№эр* ьр°шэр. Echo. Echo ╤рщЄ яЁюуЁрьь√: http://www.virtualbox.org/ Echo ┬хЄър рффюэр: http://forum.oszone.net/post-1436397.html#post1436397 Echo. Echo ╠хёЄю єёЄрэютъш: %%PROGRAMFILES%%\Oracle\VirtualBox\ Echo ╤яюёюс єёЄрэютъш: SVCPACK, ьюцхЄ шёяюы№чютрЄ№ё* ш фы* єёЄрэютъш эр "цштє■" ёшёЄхьє. Echo ▀Ёы√ъш ёючфр■Єё*: т ьхэ■ ╧єёъ-^>╧ЁюуЁрьь√, эр Ёрсюўхь ёЄюых, эр ярэхыш с√ёЄЁюую чряєёър. Echo ╧ЁхфєёьюЄЁхэр тючьюцэюёЄ№ єфрыхэш* яЁюуЁрьь√ ўхЁхч ряяыхЄ "╙ёЄрэютър ш єфрыхэшх яЁюуЁрьь". Echo. Echo └ффюэ яЁхфэрчэрўхэ фы* шёяюы№чютрэш* ё яръхЄюь юсэютыхэшщ UpdatePack-XPSP3-Rus Echo. Echo ^(c^) gora, %Date%)>%FullName%\addon.nfo Echo Упаковка аддона в архив ... Call :compr "Упаковка аддона в архив" "..\%FullName%.7z %FullName%" PopD Call :_control "%FullName%.7z" "2in1.7z" Call :Sec strt2 Set /a tmake=strt2-strt1 Echo. Echo Аддон создан и упакован за %tmake%с ^^! Echo Размер %size% МБ (со словарем %rdict1% МБ) Echo. Echo Для удаления временных файлов и выхода нажмите любую клавишу. Echo. Pause >Nul Call :_DelTemp Exit :compr If "%consol%"=="1" ( Start /min /wait "%~1" "%path7Zip%\7z.exe" a -r %~2 %comline% ) Else ( Start /min /wait "" "%path7Zip%\7zG.exe" a -r %~2 %comline% ) Set ErL=%ErrorLevel% If %ErL%==0 GoTo :EOF If %ErL%==2 Set Err=Фатальная ошибка. If %ErL%==8 Set Err=Недостаточно памяти для операции. If %ErL%==255 Set Err=Пользователь остановил процесс. PopD Call :_Abort "Ошибка упаковки %ErL%. %Err%" GoTo :EOF :_control Set /A size=%~z1*10/1024*10/1024 Set size=%size:~0,-2%.%size:~-2% For /F "tokens=1-5 usebackq delims==: " %%i In (`"%path7Zip%\7z.exe" l -slt Temp\%~2`) Do If "%%i"=="Method" If Not "%%l"=="" Set rdict=%%l If "%rdict:~-1%"=="m" ( Set rdict1=%rdict:~,-1% GoTo :EOF ) Set /A rdict-=21 Set rdict1=2 For /L %%i In (1,1,%rdict%) Do Set /A rdict1*=2 GoTo :EOF :_Abort COLOR 0C Echo %~1 Создание аддона прервано^^! Pause >Nul Call :_DelTemp Exit :_TestSys If Not Exist "%path7Zip%\7zG.exe" Call :_Abort "Неверный путь к архиватору 7-Zip." For /F "tokens=1-4 usebackq" %%i In (`"%path7Zip%\7z.exe"`) Do ( If "%%i"=="7-Zip" ( If "%%j"=="[64]" ( Set arch64=%%j Set Ver=%%k If "%%l"=="beta" Set Beta=%%l If "%%l"=="alpha" Set Beta=%%l ) Else ( Set Ver=%%j If "%%k"=="beta" Set Beta=%%k If "%%k"=="alpha" Set Beta=%%k ) ) ) If %Ver% LSS 9.04 Call :_Abort "Старая версия архиватора 7-Zip. Обновите." For /F "Tokens=1,2 Skip=1" %%i In ('WMIC OS Get FreePhysicalMemory^, TotalVisibleMemorySize') Do ( Set /A Fram=%%i/1024, Aram=%%j/1024 GoTo :_End ) :_End Set /a dictM=(%Fram%-4)*10/115 For %%a In (16 24 32 48 64 96 128 192 256 384 512 768 1024) Do If %%a LEQ %dictM% Set dict=%%a Call :_Limit Echo. Echo Разрядность ОС - %xOS% Echo Версия 7-Zip - %Ver% %Beta% %arch64% Echo RAM всего - %Aram% МБ Echo RAM свободно - %Fram% МБ (без учета фрагментации) Echo Макс. словарь - %dictM% МБ (исходя из свободных %Fram% МБ) Echo Реком. словарь - %dict% МБ (исходя из макс. словаря %dictM% МБ%limit%) If Defined dictUser ( If Defined limit2 ( Echo Польз. словарь - %dictUser% МБ ^(будет использован %Sdict% МБ%limit2%^) ) Else ( Echo Польз. словарь - %dictUser% МБ Set Sdict=%dictUser% ) ) Else ( Echo Польз. словарь - не задан ^(будет использован рекомендованный %dict% МБ^) Set Sdict=%dict% ) Echo. Set comline=-mmt2 -m0=BCJ2 -m1=LZMA2:d%Sdict%m:fb273 -m2=LZMA2:d21:fb273 -m3=LZMA2:d21:fb273 -mb0:1 -mb0s1:2 -mb0s2:3 GoTo :EOF :_Limit If %xOS%==x64 GoTo :EOF If %dict% GTR 128 Set limit= [предел x86]& Set dict=128 If Not Defined dictUser GoTo :EOF If %dictUser% GTR 128 Set limit2= [предел x86]& Set Sdict=128 GoTo :EOF :_DelTemp RD /s /q Temp 1>Nul 2>&1 If Not Exist Temp GoTo :EOF Ping -n 2 localhost>Nul GoTo :_DelTemp :Sec Set tm=%time% Set /a %1=3600*%tm:~0,2%+60*1%tm:~3,2%+1%tm:~6,2% GoTo :EOF :_sizedir For /F "tokens=1-3" %%a In ('Dir %1 /-C /S /A:-D') Do ( If !flag!==1 Set dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else Set flag=0 ) GoTo :EOF |
|
Отправлено: 16:47, 13-05-2011 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal EnableDelayedExpansion :: ======================================================= :: Файлы можно скачать здесь: :: http://download.virtualbox.org/virtualbox/vboxdownload.html#windows :: ======================================================= :: Размер словаря (МБ), измените, если у Вас недостаточно оперативной памяти :: Set dictUser=32 :: Установить 1 для удаления языков и документации Set lite=1 :: Установить 1 для принудительной упаковки консольным архиватором (при проблемах с упаковкой) Set consol=1 :: ======================================================= Title Создание аддона Virtual Box If "%Time:~0,1%"==" " (Set tt=0%Time:~1,1%-%Time:~3,2%) Else Set tt=%Time:~0,2%-%Time:~3,2% Echo Запущено %Date% в %tt% Echo Подготовка ... Call :Sec strt1 Call :_DelTemp Del /Q Virtu*.* 1>Nul 2>&1 MD Temp 1>Nul 2>&1 Set xOS=x86& If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64 If "%xOS%"=="x86" Set ProgramW6432=%ProgramFiles%& Set ProgramFiles(x86)=%ProgramFiles% :: ======================================================= :: Путь к установленному архиватору 7-Zip без слеша в конце. Если у Вас путь нестандартный, то впишите АБСОЛЮТНЫЙ путь. Set path7Zip=%ProgramW6432%\7-Zip rem Echo %path7Zip% :: ======================================================= Call :_TestSys For %%i In ("download\*.exe") Do Set nameExe=%%~nxi If Not Defined nameExe Call :_Abort "Отсутствует дистрибутив VirtualBox (.exe файл)." For /F "tokens=2,3 delims=-" %%i In ("%nameExe%") Do ( Set verexe=%%i Set Build=%%j Set nVer=%%i-r%%j ) Set VerC=%verexe:.=,%,0 Copy bin\7zsd_LZMA2.sfx Temp\7zsd_LZMA2.sfx>Nul For /F "tokens=* delims=" %%i In (bin\ver.rc) Do ( Set ti=%%i Set ti=!ti:02.12.2010=%Date%! Set ti=!ti:1,18,6,1444=%VerC%! Set ti=!ti:3.2.12=%verexe%! Set ti=!ti:68302=%Build%! Echo !ti! >>Temp\ver.rc ) bin\Rc.exe /r /fo Temp\ver.res Temp\ver.rc>Nul bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, Temp\ver.res,,, bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, bin\101.ico, Icon, 101, Del bin\ResHacker.ini bin\ResHacker.log >nul Set FullName=VirtualBox_%verexe%_x86_x64 MD Temp\%FullName%\Files\ForceCopy\SVCPACK 1>Nul 2>&1 Echo Распаковка %nameExe% ... Set pmsi=%cd%\Temp PushD Temp ..\download\%nameExe% -x -s -p "%pmsi%" For %%i In (*.msi) Do ( Set tn=%%~ni Set x!tn:~-2!=%%~ni ) Echo Создание админ. точки из %x86% ... msiexec /a "%pmsi%\%x86%.msi" /qn TARGETDIR="%pmsi%\%x86%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x86). Повторите." Echo Создание админ. точки из %x64% ... msiexec /a "%pmsi%\%x64%.msi" /qn TARGETDIR="%pmsi%\%x64%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x64). Повторите." If %lite%==1 ( Echo Удаление мусора из админ. точек ... For %%i In ("%x86%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x86%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x86%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" For %%i In ("%x64%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x64%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x64%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" ) Call :_sizedir "%x86%" Set /A All += dirsize Call :_sizedir "%x64%" Set /A All += dirsize, AllMB = All/1024/1024 Echo Дост. словарь - !AllMB! МБ (исходя из размера данных !All!) Echo Упаковка админ. точек в архив ... Call :compr "Упаковка админ. точек в архив" "2in1.7z %x86% %x64%" Echo Упаковка архива админ. точек и автономного архиватора в архив ... Set tcomline=%comline% Set comline=-mx0 Call :compr "Упаковка архива админ. точек и автономного архиватора" "VirtuBox.7z 2in1.7z ..\bin\7zr.exe ..\bin\PrivateHash.exe" Set comline=%tcomline% Echo Создание SFX Copy ..\bin\VirtualBox_config.txt >Nul (Echo SetEnvironment="Vers= v%verexe%" Echo SetEnvironment="nVer=%nVer%" Echo ;^^!@InstallEnd@^^!)>>VirtualBox_config.txt Copy /b ..\Temp\7zsd_LZMA2.sfx + VirtualBox_config.txt + VirtuBox.7z ..\VirtuBox.exe>Nul Copy ..\VirtuBox.exe %FullName%\Files\ForceCopy\SVCPACK\ >Nul Echo VirtuBox.exe -ai -gm2 -fm0>%FullName%\Run (Echo └ффюэ VirtualBox v%verexe% [x86/x64] Echo. Echo ╤юфхЁцшЄ фтх тхЁёшш ^(x86 ш x64^). ╧Ёш єёЄрэютъх ЁрчЁ*фэюёЄ№ ёшёЄхь√ юяЁхфхы*хЄё* Echo ртЄюьрЄшўхёъш ш єёЄрэртыштрхЄё* ёююЄтхЄёЄтє■∙р* тхЁёш* тшЁЄєры№эющ ьр°шэ√. Echo. Echo VirtualBox - тшЁЄєры№эр* ьр°шэр. Echo. Echo ╤рщЄ яЁюуЁрьь√: http://www.virtualbox.org/ Echo ┬хЄър рффюэр: http://forum.oszone.net/post-1436397.html#post1436397 Echo. Echo ╠хёЄю єёЄрэютъш: %%PROGRAMFILES%%\Oracle\VirtualBox\ Echo ╤яюёюс єёЄрэютъш: SVCPACK, ьюцхЄ шёяюы№чютрЄ№ё* ш фы* єёЄрэютъш эр "цштє■" ёшёЄхьє. Echo ▀Ёы√ъш ёючфр■Єё*: т ьхэ■ ╧єёъ-^>╧ЁюуЁрьь√, эр Ёрсюўхь ёЄюых, эр ярэхыш с√ёЄЁюую чряєёър. Echo ╧ЁхфєёьюЄЁхэр тючьюцэюёЄ№ єфрыхэш* яЁюуЁрьь√ ўхЁхч ряяыхЄ "╙ёЄрэютър ш єфрыхэшх яЁюуЁрьь". Echo. Echo └ффюэ яЁхфэрчэрўхэ фы* шёяюы№чютрэш* ё яръхЄюь юсэютыхэшщ UpdatePack-XPSP3-Rus Echo. Echo ^(c^) gora, %Date%)>%FullName%\addon.nfo Echo Упаковка аддона в архив ... Call :compr "Упаковка аддона в архив" "..\%FullName%.7z %FullName%" PopD Call :_control "%FullName%.7z" "2in1.7z" Call :Sec strt2 Set /a tmake=strt2-strt1 Echo. Echo Аддон создан и упакован за %tmake%с ^^! Echo Размер %size% МБ (со словарем %rdict1% МБ) Echo. Echo Для удаления временных файлов и выхода нажмите любую клавишу. Echo. Pause >Nul Call :_DelTemp Exit :compr If "%consol%"=="1" ( Start /min /wait "%~1" "%path7Zip%\7z.exe" a -r %~2 %comline% ) Else ( Start /min /wait "" "%path7Zip%\7zG.exe" a -r %~2 %comline% ) Set ErL=%ErrorLevel% If %ErL%==0 GoTo :EOF If %ErL%==2 Set Err=Фатальная ошибка. If %ErL%==8 Set Err=Недостаточно памяти для операции. If %ErL%==255 Set Err=Пользователь остановил процесс. PopD Call :_Abort "Ошибка упаковки %ErL%. %Err%" GoTo :EOF :_control Set /A size=%~z1*10/1024*10/1024 Set size=%size:~0,-2%.%size:~-2% For /F "tokens=1-5 usebackq delims==: " %%i In (`"%path7Zip%\7z.exe" l -slt Temp\%~2`) Do If "%%i"=="Method" If Not "%%l"=="" Set rdict=%%l If "%rdict:~-1%"=="m" ( Set rdict1=%rdict:~,-1% GoTo :EOF ) Set /A rdict-=21 Set rdict1=2 For /L %%i In (1,1,%rdict%) Do Set /A rdict1*=2 GoTo :EOF :_Abort COLOR 0C Echo %~1 Создание аддона прервано^^! Pause >Nul Call :_DelTemp Exit :_TestSys If Not Exist "%path7Zip%\7zG.exe" Call :_Abort "Неверный путь к архиватору 7-Zip." For /F "tokens=1-4 usebackq" %%i In (`"%path7Zip%\7z.exe"`) Do ( If "%%i"=="7-Zip" ( If "%%j"=="[64]" ( Set arch64=%%j Set Ver=%%k If "%%l"=="beta" Set Beta=%%l If "%%l"=="alpha" Set Beta=%%l ) Else ( Set Ver=%%j If "%%k"=="beta" Set Beta=%%k If "%%k"=="alpha" Set Beta=%%k ) ) ) If %Ver% LSS 9.04 Call :_Abort "Старая версия архиватора 7-Zip. Обновите." For /F "Tokens=1,2 Skip=1" %%i In ('WMIC OS Get FreePhysicalMemory^, TotalVisibleMemorySize') Do ( Set /A Fram=%%i/1024, Aram=%%j/1024 GoTo :_End ) :_End Set /a dictM=(%Fram%-4)*10/115 For %%a In (16 24 32 48 64 96 128 192 256 384 512 768 1024) Do If %%a LEQ %dictM% Set dict=%%a Call :_Limit Echo. Echo Разрядность ОС - %xOS% Echo Версия 7-Zip - %Ver% %Beta% %arch64% Echo RAM всего - %Aram% МБ Echo RAM свободно - %Fram% МБ (без учета фрагментации) Echo Макс. словарь - %dictM% МБ (исходя из свободных %Fram% МБ) Echo Реком. словарь - %dict% МБ (исходя из макс. словаря %dictM% МБ%limit%) If Defined dictUser ( If Defined limit2 ( Echo Польз. словарь - %dictUser% МБ ^(будет использован %Sdict% МБ%limit2%^) ) Else ( Echo Польз. словарь - %dictUser% МБ Set Sdict=%dictUser% ) ) Else ( Echo Польз. словарь - не задан ^(будет использован рекомендованный %dict% МБ^) Set Sdict=%dict% ) Echo. Set comline=-mmt2 -m0=BCJ2 -m1=LZMA2:d%Sdict%m:fb273 -m2=LZMA2:d21:fb273 -m3=LZMA2:d21:fb273 -mb0:1 -mb0s1:2 -mb0s2:3 GoTo :EOF :_Limit If %xOS%==x64 GoTo :EOF If %dict% GTR 128 Set limit= [предел x86]& Set dict=128 If Not Defined dictUser GoTo :EOF If %dictUser% GTR 128 Set limit2= [предел x86]& Set Sdict=128 GoTo :EOF :_DelTemp RD /s /q Temp 1>Nul 2>&1 If Not Exist Temp GoTo :EOF Ping -n 2 localhost>Nul GoTo :_DelTemp :Sec Set tm=%time% Set /a %1=3600*%tm:~0,2%+60*1%tm:~3,2%+1%tm:~6,2% GoTo :EOF :_sizedir For /F "tokens=1-3" %%a In ('Dir %1 /-C /S /A:-D') Do ( If !flag!==1 Set dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else Set flag=0 ) GoTo :EOF |
Последний раз редактировалось gora, 14-05-2011 в 14:11. Отправлено: 19:48, 13-05-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal EnableDelayedExpansion :: ======================================================= :: Файлы можно скачать здесь: :: http://download.virtualbox.org/virtualbox/vboxdownload.html#windows :: ======================================================= :: Размер словаря (МБ), измените, если у Вас недостаточно оперативной памяти :: Set dictUser=32 :: Установить 1 для удаления языков и документации Set lite=1 :: Установить 1 для принудительной упаковки консольным архиватором (при проблемах с упаковкой) Set consol=1 :: ======================================================= Title Создание аддона Virtual Box If "%Time:~0,1%"==" " (Set tt=0%Time:~1,1%-%Time:~3,2%) Else Set tt=%Time:~0,2%-%Time:~3,2% Echo Запущено %Date% в %tt% Echo Подготовка ... Call :Sec strt1 Call :_DelTemp Del /Q Virtu*.* 1>Nul 2>&1 MD Temp 1>Nul 2>&1 Set xOS=x86& If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64 If "%xOS%"=="x86" Set ProgramW6432=%ProgramFiles%& Set ProgramFiles(x86)=%ProgramFiles% :: ======================================================= :: Путь к установленному архиватору 7-Zip без слеша в конце. Если у Вас путь нестандартный, то впишите АБСОЛЮТНЫЙ путь. Set path7Zip=%ProgramW6432%\7-Zip rem Echo %path7Zip% :: ======================================================= Call :_TestSys For %%i In ("download\*.exe") Do Set nameExe=%%~nxi If Not Defined nameExe Call :_Abort "Отсутствует дистрибутив VirtualBox (.exe файл)." For /F "tokens=2,3 delims=-" %%i In ("%nameExe%") Do ( Set verexe=%%i Set Build=%%j Set nVer=%%i-r%%j ) Set VerC=%verexe:.=,%,0 Copy bin\7zsd_LZMA2.sfx Temp\7zsd_LZMA2.sfx>Nul For /F "tokens=* delims=" %%i In (bin\ver.rc) Do ( Set ti=%%i Set ti=!ti:02.12.2010=%Date%! Set ti=!ti:1,18,6,1444=%VerC%! Set ti=!ti:3.2.12=%verexe%! Set ti=!ti:68302=%Build%! Echo !ti! >>Temp\ver.rc ) bin\Rc.exe /r /fo Temp\ver.res Temp\ver.rc>Nul bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, Temp\ver.res,,, bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, bin\101.ico, Icon, 101, Del bin\ResHacker.ini bin\ResHacker.log >nul Set FullName=VirtualBox_%verexe%_x86_x64 MD Temp\%FullName%\Files\ForceCopy\SVCPACK 1>Nul 2>&1 Echo Распаковка %nameExe% ... Set pmsi=%cd%\Temp PushD Temp ..\download\%nameExe% -x -s -p "%pmsi%" For %%i In (*.msi) Do ( Set tn=%%~ni Set x!tn:~-2!=%%~ni ) Echo Создание админ. точки из %x86% ... msiexec /a "%pmsi%\%x86%.msi" /qn TARGETDIR="%pmsi%\%x86%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x86). Повторите." Echo Создание админ. точки из %x64% ... msiexec /a "%pmsi%\%x64%.msi" /qn TARGETDIR="%pmsi%\%x64%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x64). Повторите." If %lite%==1 ( Echo Удаление мусора из админ. точек ... For %%i In ("%x86%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x86%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x86%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" For %%i In ("%x64%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x64%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x64%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" ) Call :_sizedir "%x86%" Set /A All += dirsize Call :_sizedir "%x64%" Set /A All += dirsize, AllMB = All/1024/1024 Echo Дост. словарь - !AllMB! МБ (исходя из размера данных !All!) Echo Упаковка админ. точек в архив ... Call :compr "Упаковка админ. точек в архив" "2in1.7z %x86% %x64%" Echo Упаковка архива админ. точек и автономного архиватора в архив ... Set tcomline=%comline% Set comline=-mx0 Call :compr "Упаковка архива админ. точек и автономного архиватора" "VirtuBox.7z 2in1.7z ..\bin\7zr.exe ..\bin\PrivateHash.exe" Set comline=%tcomline% Echo Создание SFX Copy ..\bin\VirtualBox_config.txt >Nul (Echo SetEnvironment="Vers= v%verexe%" Echo SetEnvironment="nVer=%nVer%" Echo ;^^!@InstallEnd@^^!)>>VirtualBox_config.txt Copy /b ..\Temp\7zsd_LZMA2.sfx + VirtualBox_config.txt + VirtuBox.7z ..\VirtuBox.exe>Nul Copy ..\VirtuBox.exe %FullName%\Files\ForceCopy\SVCPACK\ >Nul Echo VirtuBox.exe -ai -gm2 -fm0>%FullName%\Run (Echo └ффюэ VirtualBox v%verexe% [x86/x64] Echo. Echo ╤юфхЁцшЄ фтх тхЁёшш ^(x86 ш x64^). ╧Ёш єёЄрэютъх ЁрчЁ*фэюёЄ№ ёшёЄхь√ юяЁхфхы*хЄё* Echo ртЄюьрЄшўхёъш ш єёЄрэртыштрхЄё* ёююЄтхЄёЄтє■∙р* тхЁёш* тшЁЄєры№эющ ьр°шэ√. Echo. Echo VirtualBox - тшЁЄєры№эр* ьр°шэр. Echo. Echo ╤рщЄ яЁюуЁрьь√: http://www.virtualbox.org/ Echo ┬хЄър рффюэр: http://forum.oszone.net/post-1436397.html#post1436397 Echo. Echo ╠хёЄю єёЄрэютъш: %%PROGRAMFILES%%\Oracle\VirtualBox\ Echo ╤яюёюс єёЄрэютъш: SVCPACK, ьюцхЄ шёяюы№чютрЄ№ё* ш фы* єёЄрэютъш эр "цштє■" ёшёЄхьє. Echo ▀Ёы√ъш ёючфр■Єё*: т ьхэ■ ╧єёъ-^>╧ЁюуЁрьь√, эр Ёрсюўхь ёЄюых, эр ярэхыш с√ёЄЁюую чряєёър. Echo ╧ЁхфєёьюЄЁхэр тючьюцэюёЄ№ єфрыхэш* яЁюуЁрьь√ ўхЁхч ряяыхЄ "╙ёЄрэютър ш єфрыхэшх яЁюуЁрьь". Echo. Echo └ффюэ яЁхфэрчэрўхэ фы* шёяюы№чютрэш* ё яръхЄюь юсэютыхэшщ UpdatePack-XPSP3-Rus Echo. Echo ^(c^) gora, %Date%)>%FullName%\addon.nfo Echo Упаковка аддона в архив ... Call :compr "Упаковка аддона в архив" "..\%FullName%.7z %FullName%" PopD Call :_control "%FullName%.7z" "2in1.7z" Call :Sec strt2 Set /a tmake=strt2-strt1 Echo. Echo Аддон создан и упакован за %tmake%с ^^! Echo Размер %size% МБ (со словарем %rdict1% МБ) Echo. Echo Для удаления временных файлов и выхода нажмите любую клавишу. Echo. Pause >Nul Call :_DelTemp Exit :compr If "%consol%"=="1" ( Start /min /wait "%~1" "%path7Zip%\7z.exe" a -r %~2 %comline% ) Else ( Start /min /wait "" "%path7Zip%\7zG.exe" a -r %~2 %comline% ) Set ErL=%ErrorLevel% If %ErL%==0 GoTo :EOF If %ErL%==2 Set Err=Фатальная ошибка. If %ErL%==8 Set Err=Недостаточно памяти для операции. If %ErL%==255 Set Err=Пользователь остановил процесс. PopD Call :_Abort "Ошибка упаковки %ErL%. %Err%" GoTo :EOF :_control Set /A size=%~z1*10/1024*10/1024 Set size=%size:~0,-2%.%size:~-2% For /F "tokens=1-5 usebackq delims==: " %%i In (`"%path7Zip%\7z.exe" l -slt Temp\%~2`) Do If "%%i"=="Method" If Not "%%l"=="" Set rdict=%%l If "%rdict:~-1%"=="m" ( Set rdict1=%rdict:~,-1% GoTo :EOF ) Set /A rdict-=21 Set rdict1=2 For /L %%i In (1,1,%rdict%) Do Set /A rdict1*=2 GoTo :EOF :_Abort COLOR 0C Echo %~1 Создание аддона прервано^^! Pause >Nul Call :_DelTemp Exit :_TestSys If Not Exist "%path7Zip%\7zG.exe" Call :_Abort "Неверный путь к архиватору 7-Zip." For /F "tokens=1-4 usebackq" %%i In (`"%path7Zip%\7z.exe"`) Do ( If "%%i"=="7-Zip" ( If "%%j"=="[64]" ( Set arch64=%%j Set Ver=%%k If "%%l"=="beta" Set Beta=%%l If "%%l"=="alpha" Set Beta=%%l ) Else ( Set Ver=%%j If "%%k"=="beta" Set Beta=%%k If "%%k"=="alpha" Set Beta=%%k ) ) ) If %Ver% LSS 9.04 Call :_Abort "Старая версия архиватора 7-Zip. Обновите." For /F "Tokens=1,2 Skip=1" %%i In ('WMIC OS Get FreePhysicalMemory^, TotalVisibleMemorySize') Do ( Set /A Fram=%%i/1024, Aram=%%j/1024 GoTo :_End ) :_End Set /a dictM=(%Fram%-4)*10/115 For %%a In (16 24 32 48 64 96 128 192 256 384 512 768 1024) Do If %%a LEQ %dictM% Set dict=%%a Call :_Limit Echo. Echo Разрядность ОС - %xOS% Echo Версия 7-Zip - %Ver% %Beta% %arch64% Echo RAM всего - %Aram% МБ Echo RAM свободно - %Fram% МБ (без учета фрагментации) Echo Макс. словарь - %dictM% МБ (исходя из свободных %Fram% МБ) Echo Реком. словарь - %dict% МБ (исходя из макс. словаря %dictM% МБ%limit%) If Defined dictUser ( If Defined limit2 ( Echo Польз. словарь - %dictUser% МБ ^(будет использован %Sdict% МБ%limit2%^) ) Else ( Echo Польз. словарь - %dictUser% МБ Set Sdict=%dictUser% ) ) Else ( Echo Польз. словарь - не задан ^(будет использован рекомендованный %dict% МБ^) Set Sdict=%dict% ) Echo. Set comline=-mmt2 -m0=BCJ2 -m1=LZMA2:d%Sdict%m:fb273 -m2=LZMA2:d21:fb273 -m3=LZMA2:d21:fb273 -mb0:1 -mb0s1:2 -mb0s2:3 GoTo :EOF :_Limit If %xOS%==x64 GoTo :EOF If %dict% GTR 128 Set limit= [предел x86]& Set dict=128 If Not Defined dictUser GoTo :EOF If %dictUser% GTR 128 Set limit2= [предел x86]& Set Sdict=128 GoTo :EOF :_DelTemp RD /s /q Temp 1>Nul 2>&1 If Not Exist Temp GoTo :EOF Ping -n 2 localhost>Nul GoTo :_DelTemp :Sec Set tm=%time% Set /a %1=3600*%tm:~0,2%+60*1%tm:~3,2%+1%tm:~6,2% GoTo :EOF :_sizedir For /F "tokens=1-3" %%a In ('Dir %1 /-C /S /A:-D') Do ( If !flag!==1 Set dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else Set flag=0 ) GoTo :EOF |
Отправлено: 07:44, 14-05-2011 | #3 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal EnableDelayedExpansion :: ======================================================= :: Файлы можно скачать здесь: :: http://download.virtualbox.org/virtualbox/vboxdownload.html#windows :: ======================================================= :: Размер словаря (МБ), измените, если у Вас недостаточно оперативной памяти :: Set dictUser=32 :: Установить 1 для удаления языков и документации Set lite=1 :: Установить 1 для принудительной упаковки консольным архиватором (при проблемах с упаковкой) Set consol=1 :: ======================================================= Title Создание аддона Virtual Box If "%Time:~0,1%"==" " (Set tt=0%Time:~1,1%-%Time:~3,2%) Else Set tt=%Time:~0,2%-%Time:~3,2% Echo Запущено %Date% в %tt% Echo Подготовка ... Call :Sec strt1 Call :_DelTemp Del /Q Virtu*.* 1>Nul 2>&1 MD Temp 1>Nul 2>&1 Set xOS=x86& If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64 If "%xOS%"=="x86" Set ProgramW6432=%ProgramFiles%& Set ProgramFiles(x86)=%ProgramFiles% :: ======================================================= :: Путь к установленному архиватору 7-Zip без слеша в конце. Если у Вас путь нестандартный, то впишите АБСОЛЮТНЫЙ путь. Set path7Zip=%ProgramW6432%\7-Zip rem [color=#0000FF]Echo[/color] %path7Zip% :: ======================================================= Call :_TestSys For %%i In ("download\*.exe") Do Set nameExe=%%~nxi If Not Defined nameExe Call :_Abort "Отсутствует дистрибутив VirtualBox (.exe файл)." For /F "tokens=2,3 delims=-" %%i In ("%nameExe%") Do ( Set verexe=%%i Set Build=%%j Set nVer=%%i-r%%j ) Set VerC=%verexe:.=,%,0 Copy bin\7zsd_LZMA2.sfx Temp\7zsd_LZMA2.sfx>Nul For /F "tokens=* delims=" %%i In (bin\ver.rc) Do ( Set ti=%%i Set ti=!ti:02.12.2010=%Date%! Set ti=!ti:1,18,6,1444=%VerC%! Set ti=!ti:3.2.12=%verexe%! Set ti=!ti:68302=%Build%! Echo !ti! >>Temp\ver.rc ) bin\Rc.exe /r /fo Temp\ver.res Temp\ver.rc>Nul bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, Temp\ver.res,,, bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, bin\101.ico, Icon, 101, Del bin\ResHacker.ini bin\ResHacker.log >nul Set FullName=VirtualBox_%verexe%_x86_x64 MD Temp\%FullName%\Files\ForceCopy\SVCPACK 1>Nul 2>&1 Echo Распаковка %nameExe% ... Set pmsi=%cd%\Temp PushD Temp ..\download\%nameExe% -x -s -p "%pmsi%" For %%i In (*.msi) Do ( Set tn=%%~ni Set x!tn:~-2!=%%~ni ) Echo Создание админ. точки из %x86% ... msiexec /a "%pmsi%\%x86%.msi" /qn TARGETDIR="%pmsi%\%x86%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x86). Повторите." Echo Создание админ. точки из %x64% ... msiexec /a "%pmsi%\%x64%.msi" /qn TARGETDIR="%pmsi%\%x64%" If Not %ErrorLevel%==0 PopD & Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x64). Повторите." If %lite%==1 ( Echo Удаление мусора из админ. точек ... For %%i In ("%x86%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x86%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x86%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" For %%i In ("%x64%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x64%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x64%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" ) Call :_sizedir "%x86%" Set /A All += dirsize Call :_sizedir "%x64%" Set /A All += dirsize, AllMB = All/1024/1024 Echo Дост. словарь - !AllMB! МБ (исходя из размера данных !All!) Echo Упаковка админ. точек в архив ... Call :compr "Упаковка админ. точек в архив" "2in1.7z %x86% %x64%" Echo Упаковка архива админ. точек и автономного архиватора в архив ... Set tcomline=%comline% Set comline=-mx0 Call :compr "Упаковка архива админ. точек и автономного архиватора" "VirtuBox.7z 2in1.7z ..\bin\7zr.exe ..\bin\PrivateHash.exe" Set comline=%tcomline% Echo Создание SFX Copy ..\bin\VirtualBox_config.txt >Nul (Echo SetEnvironment="Vers= v%verexe%" Echo SetEnvironment="nVer=%nVer%" Echo ;^^!@InstallEnd@^^!)>>VirtualBox_config.txt Copy /b ..\Temp\7zsd_LZMA2.sfx + VirtualBox_config.txt + VirtuBox.7z ..\VirtuBox.exe>Nul Copy ..\VirtuBox.exe %FullName%\Files\ForceCopy\SVCPACK\ >Nul Echo VirtuBox.exe -ai -gm2 -fm0>%FullName%\Run (Echo Аффюэ VirtualBox v%verexe% [x86/x64] Echo. Echo СюфхЁцшт фтх тхЁёшш ^(x86 ш x64^). ПЁш уётрэютъх ЁрчЁяфэюёт№ ёшётхьы юяЁхфхыяхтёя Echo рттюьртшчхёъш ш уётрэртыштрхтёя ёююттхтёттующря тхЁёшя тшЁтуры№эющ ьршшэы. Echo. Echo VirtualBox - тшЁтуры№эря ьршшэр. Echo. Echo Срщт яЁюуЁрььы: http://www.virtualbox.org/ Echo Вхтър рффюэр: http://forum.oszone.net/post-1436397.html#post1436397 Echo. Echo Мхётю уётрэютъш: %%PROGRAMFILES%%\Oracle\VirtualBox\ Echo Сяюёюс уётрэютъш: SVCPACK, ьюцхт шёяюы№чютрт№ёя ш фыя уётрэютъш эр "цштую" ёшётхьу. Echo ЯЁыыъш ёючфрютёя: т ьхэю Пуёъ-^>ПЁюуЁрььы, эр Ёрсючхь ётюых, эр ярэхыш сыётЁюую чряуёър. Echo ПЁхфуёьютЁхэр тючьюцэюёт№ уфрыхэшя яЁюуЁрььы чхЁхч ряяыхт "Уётрэютър ш уфрыхэшх яЁюуЁрьь". Echo. Echo Аффюэ яЁхфэрчэрчхэ фыя шёяюы№чютрэшя ё яръхтюь юсэютыхэшщ UpdatePack-XPSP3-Rus Echo. Echo ^(c^) gora, %Date%)>%FullName%\addon.nfo Echo Упаковка аддона в архив ... Call :compr "Упаковка аддона в архив" "..\%FullName%.7z %FullName%" PopD Call :_control "%FullName%.7z" "2in1.7z" Call :Sec strt2 Set /a tmake=strt2-strt1 Echo. Echo Аддон создан и упакован за %tmake%с ^^! Echo Размер %size% МБ (со словарем %rdict1% МБ) Echo. Echo Для удаления временных файлов и выхода нажмите любую клавишу. Echo. Pause >Nul Call :_DelTemp Exit :compr If "%consol%"=="1" ( Start /min /wait "%~1" "%path7Zip%\7z.exe" a -r %~2 %comline% ) Else ( Start /min /wait "" "%path7Zip%\7zG.exe" a -r %~2 %comline% ) Set ErL=%ErrorLevel% If %ErL%==0 GoTo :EOF If %ErL%==2 Set Err=Фатальная ошибка. If %ErL%==8 Set Err=Недостаточно памяти для операции. If %ErL%==255 Set Err=Пользователь остановил процесс. PopD Call :_Abort "Ошибка упаковки %ErL%. %Err%" GoTo :EOF :_control Set /A size=%~z1*10/1024*10/1024 Set size=%size:~0,-2%.%size:~-2% For /F "tokens=1-5 usebackq delims==: " %%i In (`"%path7Zip%\7z.exe" l -slt Temp\%~2`) Do If "%%i"=="Method" If Not "%%l"=="" Set rdict=%%l If "%rdict:~-1%"=="m" ( Set rdict1=%rdict:~,-1% GoTo :EOF ) Set /A rdict-=21 Set rdict1=2 For /L %%i In (1,1,%rdict%) Do Set /A rdict1*=2 GoTo :EOF :_Abort COLOR 0C Echo %~1 Создание аддона прервано^^! Pause >Nul Call :_DelTemp Exit :_TestSys If Not Exist "%path7Zip%\7zG.exe" Call :_Abort "Неверный путь к архиватору 7-Zip." For /F "tokens=1-4 usebackq" %%i In (`"%path7Zip%\7z.exe"`) Do ( If "%%i"=="7-Zip" ( If "%%j"=="[64]" ( Set arch64=%%j Set Ver=%%k If "%%l"=="beta" Set Beta=%%l If "%%l"=="alpha" Set Beta=%%l ) Else ( Set Ver=%%j If "%%k"=="beta" Set Beta=%%k If "%%k"=="alpha" Set Beta=%%k ) ) ) If %Ver% LSS 9.04 Call :_Abort "Старая версия архиватора 7-Zip. Обновите." For /F "Tokens=1,2 Skip=1" %%i In ('WMIC OS Get FreePhysicalMemory^, TotalVisibleMemorySize') Do ( Set /A Fram=%%i/1024, Aram=%%j/1024 GoTo :_End ) :_End Set /a dictM=(%Fram%-4)*10/115 For %%a In (16 24 32 48 64 96 128 192 256 384 512 768 1024) Do If %%a LEQ %dictM% Set dict=%%a Call :_Limit Echo. Echo Разрядность ОС - %xOS% Echo Версия 7-Zip - %Ver% %Beta% %arch64% Echo RAM всего - %Aram% МБ Echo RAM свободно - %Fram% МБ (без учета фрагментации) Echo Макс. словарь - %dictM% МБ (исходя из свободных %Fram% МБ) Echo Реком. словарь - %dict% МБ (исходя из макс. словаря %dictM% МБ%limit%) If Defined dictUser ( If Defined limit2 ( Echo Польз. словарь - %dictUser% МБ ^(будет использован %Sdict% МБ%limit2%^) ) Else ( Echo Польз. словарь - %dictUser% МБ Set Sdict=%dictUser% ) ) Else ( Echo Польз. словарь - не задан ^(будет использован рекомендованный %dict% МБ^) Set Sdict=%dict% ) Echo. Set comline=-mmt2 -m0=BCJ2 -m1=LZMA2:d%Sdict%m:fb273 -m2=LZMA2:d21:fb273 -m3=LZMA2:d21:fb273 -mb0:1 -mb0s1:2 -mb0s2:3 GoTo :EOF :_Limit If %xOS%==x64 GoTo :EOF If %dict% GTR 128 Set limit= [предел x86]& Set dict=128 If Not Defined dictUser GoTo :EOF If %dictUser% GTR 128 Set limit2= [предел x86]& Set Sdict=128 GoTo :EOF :_DelTemp RD /s /q Temp 1>Nul 2>&1 If Not Exist Temp GoTo :EOF Ping -n 2 localhost>Nul GoTo :_DelTemp :Sec Set tm=%time% Set /a %1=3600*%tm:~0,2%+60*1%tm:~3,2%+1%tm:~6,2% GoTo :EOF :_sizedir For /F "tokens=1-3" %%a In ('Dir %1 /-C /S /A:-D') Do ( If !flag!==1 Set dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else Set flag=0 ) GoTo :EOF |
Последний раз редактировалось gora, 15-05-2011 в 08:04. Отправлено: 07:16, 15-05-2011 | #4 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal EnableDelayedExpansion :: ======================================================= :: Файлы можно скачать здесь: :: http://download.virtualbox.org/virtualbox/vboxdownload.html#windows :: ======================================================= :: Размер словаря (МБ), измените, если у Вас недостаточно оперативной памяти :: Set dictUser=32 :: Установить 1 для удаления языков и документации Set lite=1 :: Установить 1 для принудительной упаковки консольным архиватором (при проблемах с упаковкой) :: Set consol=1 :: ======================================================= Title Создание аддона Virtual Box If "%Time:~0,1%"==" " (Set tt=0%Time:~1,1%-%Time:~3,2%) Else Set tt=%Time:~0,2%-%Time:~3,2% Echo Запущено %Date% в %tt% :: Echo Подготовка ... Call :Sec strt1 Call :_DelTemp Del /Q Virtu*.* 1>Nul 2>&1 MD Temp 1>Nul 2>&1 Set xOS=x86& If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64 If "%xOS%"=="x86" Set ProgramW6432=%ProgramFiles%& Set ProgramFiles(x86)=%ProgramFiles% :: ======================================================= :: Путь к установленному архиватору 7-Zip без слеша в конце. Если у Вас путь нестандартный, то впишите АБСОЛЮТНЫЙ путь. Set path7Zip=%ProgramW6432%\7-Zip rem Echo %path7Zip% :: ======================================================= Call :_TestSys For %%i In ("download\*.exe") Do Set nameExe=%%~nxi If Not Defined nameExe Call :_Abort "Отсутствует дистрибутив VirtualBox (.exe файл)." For /F "tokens=2,3 delims=-" %%i In ("%nameExe%") Do ( Set verexe=%%i Set Build=%%j Set nVer=%%i-r%%j ) Set VerC=%verexe:.=,%,0 Copy bin\7zsd_LZMA2.sfx Temp\7zsd_LZMA2.sfx>Nul For /F "tokens=* delims=" %%i In (bin\ver.rc) Do ( Set ti=%%i Set ti=!ti:02.12.2010=%Date%! Set ti=!ti:1,18,6,1444=%VerC%! Set ti=!ti:3.2.12=%verexe%! Set ti=!ti:68302=%Build%! Echo !ti! >>Temp\ver.rc ) bin\Rc.exe /r /fo Temp\ver.res Temp\ver.rc>Nul bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, Temp\ver.res,,, bin\ResHacker.exe -addoverwrite Temp\7zsd_LZMA2.sfx, Temp\7zsd_LZMA2.sfx, bin\101.ico, Icon, 101, Del bin\ResHacker.ini bin\ResHacker.log >nul Set FullName=VirtualBox_%verexe%_x86_x64 MD Temp\%FullName%\Files\ForceCopy\SVCPACK 1>Nul 2>&1 Echo Распаковка %nameExe% ... Set pmsi=%cd%\Temp download\%nameExe% -x -s -p "%pmsi%" For %%i In (Temp\*.msi) Do ( Set tn=%%~ni Set x!tn:~-2!=%%~ni ) Echo Создание админ. точки из %x86% ... msiexec /a "%pmsi%\%x86%.msi" /qn TARGETDIR="%pmsi%\%x86%" If Not %ErrorLevel%==0 Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x86). Повторите." Echo Создание админ. точки из %x64% ... msiexec /a "%pmsi%\%x64%.msi" /qn TARGETDIR="%pmsi%\%x64%" If Not %ErrorLevel%==0 Call :_Abort "Ошибка %ErrorLevel% создания админ. точки (x64). Повторите." PushD Temp If %lite%==1 ( Echo Удаление мусора из админ. точек ... For %%i In ("%x86%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x86%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x86%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" For %%i In ("%x64%\PFiles\Oracle VM VirtualBox\nls\*.qm") Do ( Set ti=%%~ni If /I Not !ti:~-2!==ru If /I Not !ti:~-2!==en CD. >%%i ) CD. >"%x64%\PFiles\Oracle VM VirtualBox\doc\UserManual.pdf" CD. >"%x64%\PFiles\Oracle VM VirtualBox\VirtualBox.chm" ) Call :_sizedir "%x86%" Set /A All += dirsize Call :_sizedir "%x64%" Set /A All += dirsize, AllMB = All/1024/1024 Echo !AllMB! !All! >..\suff_size.txt Echo Упаковка админ. точек в архив ... Call :compr "Упаковка админ. точек в архив" "2in1.7z %x86% %x64%" Echo Упаковка архива админ. точек и автономного архиватора в архив ... Set tcomline=%comline% Set comline=-mx0 Call :compr "Упаковка архива админ. точек и автономного архиватора" "VirtuBox.7z 2in1.7z ..\bin\7zr.exe ..\bin\PrivateHash.exe" Set comline=%tcomline% Echo Создание SFX Copy ..\bin\VirtualBox_config.txt >Nul (Echo SetEnvironment="Vers= v%verexe%" Echo SetEnvironment="nVer=%nVer%" Echo ;^^!@InstallEnd@^^!)>>VirtualBox_config.txt Copy /b ..\Temp\7zsd_LZMA2.sfx + VirtualBox_config.txt + VirtuBox.7z ..\VirtuBox.exe>Nul Copy ..\VirtuBox.exe %FullName%\Files\ForceCopy\SVCPACK\ >Nul Echo VirtuBox.exe -ai -gm2 -fm0>%FullName%\Run (Echo Аффюэ VirtualBox v%verexe% [x86/x64] Echo. Echo СюфхЁцшт фтх тхЁёшш ^(x86 ш x64^). ПЁш уётрэютъх ЁрчЁяфэюёт№ ёшётхьы юяЁхфхыяхтёя Echo рттюьртшчхёъш ш уётрэртыштрхтёя ёююттхтёттующря тхЁёшя тшЁтуры№эющ ьршшэы. Echo. Echo VirtualBox - тшЁтуры№эря ьршшэр. Echo. Echo Срщт яЁюуЁрььы: http://www.virtualbox.org/ Echo Вхтър рффюэр: http://forum.oszone.net/post-1436397.html#post1436397 Echo. Echo Мхётю уётрэютъш: %%PROGRAMFILES%%\Oracle\VirtualBox\ Echo Сяюёюс уётрэютъш: SVCPACK, ьюцхт шёяюы№чютрт№ёя ш фыя уётрэютъш эр "цштую" ёшётхьу. Echo ЯЁыыъш ёючфрютёя: т ьхэю Пуёъ-^>ПЁюуЁрььы, эр Ёрсючхь ётюых, эр ярэхыш сыётЁюую чряуёър. Echo ПЁхфуёьютЁхэр тючьюцэюёт№ уфрыхэшя яЁюуЁрььы чхЁхч ряяыхт "Уётрэютър ш уфрыхэшх яЁюуЁрьь". Echo. Echo Аффюэ яЁхфэрчэрчхэ фыя шёяюы№чютрэшя ё яръхтюь юсэютыхэшщ UpdatePack-XPSP3-Rus Echo. Echo ^(c^) gora, %Date%)>%FullName%\addon.nfo Echo Упаковка аддона в архив ... Call :compr "Упаковка аддона в архив" "..\%FullName%.7z %FullName%" PopD Call :_control "%FullName%.7z" "2in1.7z" Call :Sec strt2 Set /a tmake=strt2-strt1 Echo. Echo Аддон создан и упакован за %tmake%с. Размер %size% МБ (со словарем %rdict1% МБ) Echo. Echo Для удаления временных файлов и выхода нажмите любую клавишу. Echo. Pause >Nul Call :_DelTemp Exit :compr If "%consol%"=="1" ( Start /min /wait "%~1" "%path7Zip%\7z.exe" a -r %~2 %comline% ) Else ( Start /min /wait "" "%path7Zip%\7zG.exe" a -r %~2 %comline% ) Set ErL=%ErrorLevel% If %ErL%==0 GoTo :EOF If %ErL%==2 Set Err=Фатальная ошибка. If %ErL%==8 Set Err=Недостаточно памяти для операции. If %ErL%==255 Set Err=Пользователь остановил процесс. PopD Call :_Abort "Ошибка упаковки %ErL%. %Err%" GoTo :EOF :_control Set /A size=%~z1*10/1024*10/1024 Set size=%size:~0,-2%.%size:~-2% For /F "tokens=1-5 usebackq delims==: " %%i In (`"%path7Zip%\7z.exe" l -slt Temp\%~2`) Do If "%%i"=="Method" If Not "%%l"=="" Set rdict=%%l If "%rdict:~-1%"=="m" ( Set rdict1=%rdict:~,-1% GoTo :EOF ) Set /A rdict-=21 Set rdict1=2 For /L %%i In (1,1,%rdict%) Do Set /A rdict1*=2 GoTo :EOF :_Abort COLOR 0C Echo %~1 Создание аддона прервано^^! Pause >Nul Call :_DelTemp Exit :_TestSys If Not Exist "%path7Zip%\7zG.exe" Call :_Abort "Неверный путь к архиватору 7-Zip." For /F "tokens=1-4 usebackq" %%i In (`"%path7Zip%\7z.exe"`) Do ( If "%%i"=="7-Zip" ( If "%%j"=="[64]" ( Set arch64=%%j Set Ver=%%k If "%%l"=="beta" Set Beta=%%l If "%%l"=="alpha" Set Beta=%%l ) Else ( Set Ver=%%j If "%%k"=="beta" Set Beta=%%k If "%%k"=="alpha" Set Beta=%%k ) ) ) If %Ver% LSS 9.04 Call :_Abort "Старая версия архиватора 7-Zip. Обновите." For /F "Tokens=1,2 Skip=1" %%i In ('WMIC OS Get FreePhysicalMemory^, TotalVisibleMemorySize') Do ( Set /A Fram=%%i/1024, Aram=%%j/1024 GoTo _End ) :_End Set /a dictM=(%Fram%-4)*10/115 For %%a In (16 24 32 48 64 96 128 192 256 384 512 768 1024) Do If %%a LEQ %dictM% Set dict=%%a Call :_Limit Ver Echo Разрядность ОС - %xOS% Echo Версия 7-Zip - %Ver% %Beta% %arch64% Echo RAM всего - %Aram% МБ Echo RAM свободно - %Fram% МБ (без учета фрагментации) Echo Макс. словарь - %dictM% МБ (исходя из свободных %Fram% МБ) Echo Реком. словарь - %dict% МБ (исходя из макс. словаря %dictM% МБ%limit%) If Exist suff_size.txt For /F "tokens=1-2" %%i In (suff_size.txt) Do Echo Достат. словарь - %%i МБ ^(исходя из размера данных %%j^) If Defined dictUser ( If Defined limit2 ( Echo Польз. словарь - %dictUser% МБ ^(будет использован %Sdict% МБ%limit2%^) ) Else ( Echo Польз. словарь - %dictUser% МБ Set Sdict=%dictUser% ) ) Else ( Echo Польз. словарь - не задан ^(будет использован рекомендованный %dict% МБ^) Set Sdict=%dict% ) Echo. Set comline=-mmt2 -m0=BCJ2 -m1=LZMA2:d%Sdict%m:fb273 -m2=LZMA2:d21:fb273 -m3=LZMA2:d21:fb273 -mb0:1 -mb0s1:2 -mb0s2:3 GoTo :EOF :_Limit If %xOS%==x64 GoTo :EOF If %dict% GTR 128 Set limit= [предел x86]& Set dict=128 If Not Defined dictUser GoTo :EOF If %dictUser% GTR 128 Set limit2= [предел x86]& Set Sdict=128 GoTo :EOF :_DelTemp RD /s /q Temp 1>Nul 2>&1 If Not Exist Temp GoTo :EOF Ping -n 2 localhost>Nul GoTo :_DelTemp :Sec Set tm=%time% Set /a %1=3600*%tm:~0,2%+60*1%tm:~3,2%+1%tm:~6,2% GoTo :EOF :_sizedir For /F "tokens=1-3" %%a In ('Dir %1 /-C /S /A:-D') Do ( If !flag!==1 Set dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else Set flag=0 ) GoTo :EOF |
|
Последний раз редактировалось gora, 15-05-2011 в 22:14. Отправлено: 21:50, 15-05-2011 | #5 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off Title USB Manager SetLocal EnableDelayedExpansion Set err=0 Set cnt=0 Set choice=1 For /F "tokens=* delims=" %%a In ('usr list -s') Do Call :_parser "%%a" If %cnt%==0 Exit If %cnt%==1 GoTo :_OneDrv Set choice= Set disconnect=0 Set connect=0 Set buttons="Стоп все" "Вкл. все" "Отмена" Set Mesg1=[Стоп все] - остановить все устройства~n[Вкл. все]~t - вернуть все устройства обратно~n~n For /L %%i In (1,1,%cnt%) Do ( If "!status_drv%%i!"=="" ( Set connect=1 Set Mesg1=!Mesg1![Стоп !drv%%i!]~t - остановить устройство !drv%%i!~n Set buttons=!buttons! "Стоп !drv%%i!" ) Else ( Set disconnect=1 Set Mesg1=!Mesg1![Вкл. !drv%%i!]~t - вернуть устройство !drv%%i! обратно *~n Set buttons=!buttons! "Вкл. !drv%%i!" ) ) If %connect%==1 ( rem Set Mesg1=!Mesg1!~n[Откл. все] - остановить все устройства rem Set buttons=!buttons!"Откл. все" ) If %disconnect%==1 ( Set Mesg1=!Mesg1!~n* Это действие также перезагрузит другие~n устройства, подключенные к USB хабу rem Set Mesg1=!Mesg1!~n[Вкл. все] - вернуть все устройства обратно~n* Это действие также перезагрузит другие~n устройства, подключенные к USB хабу rem Set buttons=!buttons!"Вкл. все" ) 7zbut -msgbox "!Mesg1!" "USB Manager" db1:fl33:bw85:bpl3 !buttons!>nul Set presskey=!errorlevel! If !presskey!==20 Exit If !presskey!==1 ( Set cntRet=0 For /L %%i In (1,1,%cnt%) Do If "!status_drv%%i!"=="" ( Set /A cntRet +=1 Set drvc=!drv%%i! Set listdrv=!listdrv!~n!fulldrv%%i! Call :_Stop !drv%%i! ) If !cntRet!==1 ( Call :_balloon "Устройство !drvc! остановлено" ) Else Call :_balloon "Остановлены устройства:!listdrv!" Exit ) If !presskey!==2 ( Set cntRet=0 For /L %%i In (1,1,%cnt%) Do If Not "!status_drv%%i!"=="" ( Set /A cntRet +=1 Set drvc=!drv%%i! Set listdrv=!listdrv!~n!fulldrv%%i! Call :_Return !drv%%i! ) If !cntRet!==1 ( Call :_balloon "Устройство !drvc! возвращено обратно" ) Else Call :_balloon "Возвращены обратно устройства:!listdrv!" Exit ) If !presskey! GTR 20 Set /A choice=presskey - 20 :_OneDrv If "!status_drv%choice%!"=="" ( Call :_Stop !drv%choice%! Call :_balloon "Устройство !drv%choice%! остановлено" ) Else ( Call :_Return !drv%choice%! Call :_balloon "Устройство !drv%choice%! возвращено обратно" ) Exit :_Return usr return -d %~1 >Nul GoTo :EOF :_Stop usr stop -d %1 >Nul Set err=%errorlevel% If %err%==0 GoTo :EOF If %err%==2 ( usr wholocks -d %1>Nul Set err=!errorlevel! If !err!==5 GoTo :_message If !err!==6 GoTo :_message Set Mesg1=Устройство ~x28%1~x29 заблокировано и не может быть остановлено.~n~nФайл блокирующего процесса~n====================== Set cntPr=0 For /F "skip=4 tokens=1*" %%a In ('usr wholocks -d %1') Do Call :_lockproc "%%a" "%%b" If "!cntPr!"=="1" ( Set Mesg1=!Mesg1!~n~n1. Остановить процесс ~q!proc!~q и повторить операцию~n2. ~qУбить~q процесс ~q!proc!~q и повторить операцию ) Else ( Set Mesg1=!Mesg1!~n~n1. Остановить ВСЕ блокирующие процессы и повторить операцию~n2. ~qУбить~q ВСЕ блокирующие процессы и повторить операцию ) 7zbut -msgbox "!Mesg1!" "USB Manager" db1:fl49 "1 вариант" "2 вариант" "Отмена">nul Set presskey=!errorlevel! If !presskey!==20 Exit If !presskey!==1 usr forcedstop -d %1 >Nul If !presskey!==2 For /L %%i In (1,1,!cntPr!) Do TaskKill /F /IM !proc%%i!>Nul GoTo :_Stop ) :_message If %err%==1 Set Mesg=Устройство %1 не найдено If %err%==3 Set Mesg=Неверный синтаксис команды If %err%==4 Set Mesg=Неизвестная команда If %err%==5 Set Mesg=Не найдены процессы блокирующие устройство %1 или оно уже свободно If %err%==6 Set Mesg=Произошла ошибка при поиске процессов блокирующих устройство %1 Call :_balloon "%Mesg%" GoTo :EOF :_lockproc Set /A cntPr +=1 rem Set tab= Set proc=%~1 Set proc!cntPr!=%~1 rem If "!proc:~7,1!"=="" Set tab=~t Set Mesg1=!Mesg1!~n%~2 GoTo :EOF :_parser Set /A cnt +=1 Set ta=%~1 Set fulldrv%cnt%=!ta:~3! If Not "!ta!"=="!ta:safely removed=!" ( Set status_drv%cnt%=1 Set fulldrv%cnt%=!ta:~3,-20! ) Set ta=!ta:*^(=! Set drv%cnt%=!ta:~0,2! GoTo :EOF :_balloon Start "" nircmd trayballoon "USB Manager" %1 "Zentimo.exe" 5000 Echo GoTo :EOF |
Отправлено: 09:51, 16-05-2011 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off :: Кодировка файла 'Кирилица DOS' (866) Set var=123456789 Echo Запись Значение Echo. Echo Переменная полностью %%var%% %var% Echo Первые три символа %%var:~0,3%% %var:~0,3% Echo Последние три символа %%var:~-3%% %var:~-3% Echo Три символа начиная с шестого %%var:~5,3%% %var:~5,3% Echo Без первых трех символов %%var:~3%% %var:~3% Echo Без последних трех символов %%var:~0,-3%% %var:~0,-3% Echo Без первых двух и последних трех %%var:~2,-3%% %var:~2,-3% Echo. Echo Замена части переменной (45 на abc) %%var:45=abc%% %var:45=abc% Echo Замена части переменной и символов Echo до нее (23, и все что до этого, на xyz) %%var:*23=xyz%% %var:*23=xyz% Echo Удаление части переменной (567) %%var:567=%% %var:567=% Echo. Echo =============================================================================== Echo Запись Значение Echo. Echo %%0 %0 Echo %%~0 %~0 Echo %%~f0 %~f0 Echo %%~s0 %~s0 Echo %%~d0 %~d0 Echo %%~p0 %~p0 Echo %%~n0 %~n0 Echo %%~x0 %~x0 Echo %%~a0 %~a0 Echo %%~t0 %~t0 Echo %%~z0 %~z0 Echo %%~dp0 %~dp0 Echo %%~nx0 %~nx0 Echo %%~sn0 %~sn0 Echo %%~sx0 %~sx0 Echo %%~snx0 %~snx0 Echo %%~ftza0 %~ftza0 Pause>Nul |
Отправлено: 19:38, 26-05-2011 | #7 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off :: Кодировка файла 'Кирилица DOS' (866) Set var=123456789 Echo Запись Значение Echo. Echo Переменная полностью %%var%% %var% Echo Первые три символа %%var:~0,3%% %var:~0,3% Echo Последние три символа %%var:~-3%% %var:~-3% Echo Три символа начиная с шестого %%var:~5,3%% %var:~5,3% Echo Без первых трех символов %%var:~3%% %var:~3% Echo Без последних трех символов %%var:~0,-3%% %var:~0,-3% Echo Без первых двух и последних трех %%var:~2,-3%% %var:~2,-3% Echo. Echo Замена части переменной (45 на abc) %%var:45=abc%% %var:45=abc% Echo Замена части переменной и символов Echo до нее (23, и все что до этого, на xyz) %%var:*23=xyz%% %var:*23=xyz% Echo Удаление части переменной (567) %%var:567=%% %var:567=% Echo. Echo =============================================================================== Echo Запись Значение Echo. Echo %%0 %0 Echo %%~0 %~0 Echo %%~f0 %~f0 Echo %%~s0 %~s0 Echo %%~d0 %~d0 Echo %%~p0 %~p0 Echo %%~n0 %~n0 Echo %%~x0 %~x0 Echo %%~a0 %~a0 Echo %%~t0 %~t0 Echo %%~z0 %~z0 Echo %%~dp0 %~dp0 Echo %%~nx0 %~nx0 Echo %%~sn0 %~sn0 Echo %%~sx0 %~sx0 Echo %%~snx0 %~snx0 Echo %%~ftza0 %~ftza0 Pause>Nul |
Отправлено: 16:30, 27-05-2011 | #8 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off Setlocal enabledelayedexpansion Rem Путь к папке со скриншотами Set "input_dir=c:\musor\input" Rem Размер превьюшек Set "maxsize=200,200" Rem Число превьюшек в ряду Set nummax=4 Rem Путь к папке со скриншотами на FTP (слеши прямые) Set "ftp=http://tools.oszone.net/Jekson07/pict" Rem Путь к папке с программой IrfanView Set "Irfan=%ProgramFiles%\IrfanView\i_view32.exe" If Exist "%input_dir%\links.txt" Del /f /q "%input_dir%\links.txt" For /R "%input_dir%" %%i In (*) Do ( Set tmp_name=%%~ni If Not "!tmp_name:~-3!"=="_rz" If Not %%~xi==.txt ( "%Irfan%" "%%i" /resize=^(%maxsize%^) /resample /aspectratio /convert="%input_dir%\%%~ni_rz%%~xi" Set "urls=!urls![url=%ftp%/%%~nxi][img]%ftp%/%%~ni_rz%%~xi[/img][/url]" Set /a num+=1 If !num! GEQ %nummax% ( Echo !urls!>>"%input_dir%\links.txt" Set num=0 Set urls= ) ) ) If Not !num!==0 Echo !urls!>>"%input_dir%\links.txt" Exit |
Отправлено: 22:02, 30-05-2011 | #9 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off Title USB Manager SetLocal EnableDelayedExpansion Set err=0 Set cnt=0 Set choice=1 For /F "tokens=* delims=" %%a In ('usr list -s') Do Call :_parser "%%a" If %cnt%==0 Exit If %cnt%==1 GoTo :_OneDrv Set choice= Set disconnect=0 Set connect=0 Set buttons="Стоп все" "Вкл. все" "Отмена" Set Mesg1=[Стоп все] - остановить все устройства~n[Вкл. все]~t - вернуть все устройства обратно~n~n For /L %%i In (1,1,%cnt%) Do ( If "!status_drv%%i!"=="" ( Set connect=1 Set Mesg1=!Mesg1![Стоп !drv%%i!]~t - остановить устройство !drv%%i!~n Set buttons=!buttons! "Стоп !drv%%i!" ) Else ( Set disconnect=1 Set Mesg1=!Mesg1![Вкл. !drv%%i!]~t - вернуть устройство !drv%%i! обратно *~n Set buttons=!buttons! "Вкл. !drv%%i!" ) ) If %connect%==1 ( rem Set Mesg1=!Mesg1!~n[Откл. все] - остановить все устройства rem Set buttons=!buttons!"Откл. все" ) If %disconnect%==1 ( Set Mesg1=!Mesg1!~n* Это действие также перезагрузит другие~n устройства, подключенные к USB хабу rem Set Mesg1=!Mesg1!~n[Вкл. все] - вернуть все устройства обратно~n* Это действие также перезагрузит другие~n устройства, подключенные к USB хабу rem Set buttons=!buttons!"Вкл. все" ) 7zbut -msgbox "!Mesg1!" "USB Manager" db1:fl33:bw85:bpl3 !buttons!>nul Set presskey=!errorlevel! If !presskey!==20 Exit If !presskey!==1 ( Set cntRet=0 For /L %%i In (1,1,%cnt%) Do If "!status_drv%%i!"=="" ( Set /A cntRet +=1 Set drvc=!drv%%i! Set listdrv=!listdrv!~n!fulldrv%%i! Call :_Stop !drv%%i! ) If !cntRet!==1 ( Call :_balloon "Устройство !drvc! остановлено" ) Else Call :_balloon "Остановлены устройства:!listdrv!" Exit ) If !presskey!==2 ( Set cntRet=0 For /L %%i In (1,1,%cnt%) Do If Not "!status_drv%%i!"=="" ( Set /A cntRet +=1 Set drvc=!drv%%i! Set listdrv=!listdrv!~n!fulldrv%%i! Call :_Return !drv%%i! ) If !cntRet!==1 ( Call :_balloon "Устройство !drvc! возвращено обратно" ) Else Call :_balloon "Возвращены обратно устройства:!listdrv!" Exit ) If !presskey! GTR 20 Set /A choice=presskey - 20 :_OneDrv If "!status_drv%choice%!"=="" ( Call :_Stop !drv%choice%! Call :_balloon "Устройство !drv%choice%! остановлено" ) Else ( Call :_Return !drv%choice%! Call :_balloon "Устройство !drv%choice%! возвращено обратно" ) Exit :_Return usr return -d %~1 >Nul GoTo :EOF :_Stop usr stop -d %1 >Nul Set err=%errorlevel% If %err%==0 GoTo :EOF If %err%==2 ( usr wholocks -d %1>Nul Set err=!errorlevel! If !err!==5 GoTo :_message If !err!==6 GoTo :_message Set Mesg1=Устройство ~x28%1~x29 заблокировано и не может быть остановлено.~n~nФайл блокирующего процесса~n====================== Set cntPr=0 For /F "skip=4 tokens=1*" %%a In ('usr wholocks -d %1') Do Call :_lockproc "%%a" "%%b" If "!cntPr!"=="1" ( Set Mesg1=!Mesg1!~n~n1. Остановить процесс ~q!proc!~q и повторить операцию~n2. ~qУбить~q процесс ~q!proc!~q и повторить операцию ) Else ( Set Mesg1=!Mesg1!~n~n1. Остановить ВСЕ блокирующие процессы и повторить операцию~n2. ~qУбить~q ВСЕ блокирующие процессы и повторить операцию ) 7zbut -msgbox "!Mesg1!" "USB Manager" db1:fl49 "1 вариант" "2 вариант" "Отмена">nul Set presskey=!errorlevel! If !presskey!==20 Exit If !presskey!==1 usr forcedstop -d %1 >Nul If !presskey!==2 For /L %%i In (1,1,!cntPr!) Do TaskKill /F /IM !proc%%i!>Nul GoTo :_Stop ) :_message If %err%==1 Set Mesg=Устройство %1 не найдено If %err%==3 Set Mesg=Неверный синтаксис команды If %err%==4 Set Mesg=Неизвестная команда If %err%==5 Set Mesg=Не найдены процессы блокирующие устройство %1 или оно уже свободно If %err%==6 Set Mesg=Произошла ошибка при поиске процессов блокирующих устройство %1 Call :_balloon "%Mesg%" GoTo :EOF :_lockproc Set /A cntPr +=1 rem Set tab= Set proc=%~1 Set proc!cntPr!=%~1 rem If "!proc:~7,1!"=="" Set tab=~t Set Mesg1=!Mesg1!~n%~2 GoTo :EOF :_parser Set /A cnt +=1 Set ta=%~1 Set fulldrv%cnt%=!ta:~3! If Not "!ta!"=="!ta:safely removed=!" ( Set status_drv%cnt%=1 Set fulldrv%cnt%=!ta:~3,-20! ) Set ta=!ta:*^(=! Set drv%cnt%=!ta:~0,2! GoTo :EOF :_balloon Start "" nircmd trayballoon "USB Manager" %1 "Zentimo.exe" 5000 Echo GoTo :EOF |
Отправлено: 09:44, 31-05-2011 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Новая версия утилиты RSAT для Windows 7 SP1 доступна для загрузки | OSZone News | Новости и события Microsoft | 0 | 10-04-2011 01:30 | |
Оптимизация за счет батников | Valik87 | Microsoft Windows NT/2000/2003 | 3 | 04-12-2009 14:32 | |
Драйвер для подсветки и мультимедиа Sony Vaio VGN AR520E? | Kondrat6407 | Поиск драйверов, прошивок и руководств | 0 | 01-10-2008 23:41 | |
Системные утилиты для WinXP | BigMike | Программное обеспечение Windows | 10 | 25-06-2008 00:24 | |
Утилиты для управление портами | Yazago | Программное обеспечение Windows | 1 | 13-06-2008 20:19 |
|