VBS в среде WIN PE

Тема в разделе "Visual Basic 6 / Сценарии VBScript, JScript", создана пользователем Kиpилл, 1 мар 2014.

  1. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Привет.
    задался вроде бы несложным вопросом,а нет - переменная в среде восстановления не возвращается...что посоветуете?
    Код (DOS):
    @echo off
    SetLocal EnableExtensions EnableDelayedExpansion
    Chcp 866 >nul
    title sfc /scannow win pe

      echo on error resume next
       echo  sPath = CreateObject^("Shell.Application"^).BrowseForFolder^(0, "┬√схЁшЄх фшёъ ё тр°хщ юяхЁрЎшюээющ ёшёЄхьюща", 17^).self.Path
        echo if err then WScript.Echo^("═х т√сЁрэ фшёъ"^) else WScript.Echo ^(sPath^))> "%~dp0Copy.vbs"
         For /F "delims=" %%a in ('cscript.exe //nologo "%~dp0Copy.vbs" "%~dpnx0"') do set live=%%a

    echo Вы выбрали папку "%live%"
      echo.

        sfc /scannow /OFFBOOTDIR=%live%\ /OFFWINDIR=%live%\windows
     
                                 



    pause
    exit /B
     
     
    Последнее редактирование модератором: 24 мар 2014
  2. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.498
    Симпатии:
    4.313
    а окно выбора папки появляется?
     
  3. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    да,конечно!
    --- Объединённое сообщение, 1 мар 2014 ---
    вводить букву диска всяко разно пытался.
     
    Последнее редактирование: 1 мар 2014
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.498
    Симпатии:
    4.313
    Может, там функционал библиотек урезан.
    Кстати, опции неверно заданы: http://ss64.com/vb/browseforfolder.html
    Попробуй такой VBS:
    Код (vb.net):

    sPath = CreateObject("Shell.Application").BrowseForFolder(0, "выбор", 0, 17).self.Path
    msgbox sPath
     
    Какая ошибка будет?
     
  5. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Вот такая фига)
    upload_2014-3-2_2-24-27.png

    ладно,придется кажется средствами консоли обойтись)
     
  6. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    А без vbs пробовал например так http://rghost.ru/52754555
    Код (DOS):
    @echo off
    CLS
    color 0A

    :: Поиск дисков с Windows

    echo ┌----------------------┐
    for %%i in (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 "%%i:\Windows\system32\winver.exe" echo      Windows на %%i: && echo └----------------------┘
    )
    set SysDisk=C:
    echo Введите букву системного диска восстанавливаемого ПК, например С:
    echo Если сиcтема установлена на диск C: жми Enter
    set /p SysDisk=

    :: Путь к папке WINDOWS восстанавливаемого ПК

    set TarWin=%SysDisk%\WINDOWS
    echo %TarWin%
    pause
     
    Последнее редактирование модератором: 24 мар 2014
    Dragokas и Kиpилл нравится это.
  7. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    glax24, я почти так же и хотел сначала
    (for %%i in (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)
    но было желание избавить пользователя от поиска буквы диска - она же меняется.
    Видимо на чистом bat и остановлюсь,щас посмотрю как проидет и лог сразу приделаю.
     
    Последнее редактирование: 1 мар 2014
  8. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Так она же выводится и в большинстве случаев надо будет нажать только Enter
    --- Объединённое сообщение, 1 мар 2014 ---
    Кирилл посмотри первый пост может в этом проблема http://safezone.cc/threads/zapusk-utility-autoruns-v-srede-windows-pe.19793/
     
    Последнее редактирование: 1 мар 2014
    Dragokas и Kиpилл нравится это.
  9. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    ага,так нормально,проверил сейчас.
    только немного допилю и все,так то что надо,спасибо.
     
  10. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    glax24, решил что сохранять лог имеет смысл рядом с батником,это не должно напрягать юзера.
    А вот немного измененный скрипт:
    Код (DOS):
    @echo off
    SetLocal EnableExtensions EnableDelayedExpansion
    Chcp 866 >nul
    title sfc /scannow win pe


    echo ┌----------------------┐
    for %%i in (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 "%%i:\Windows\system32\winver.exe" echo  Windows на %%i: && echo └----------------------┘ &set disk=%%i
    )

    set SysDisk=%disk%

    echo Если сиcтема установлена на диск & echo %disk%,тогда нажми клавишу  Enter
    echo Если буква диска определена неверно, то введите букву системного диска восстанавливаемого ПК, например D
    set /p SysDisk=

    :: Путь к папке WINDOWS восстанавливаемого ПК

    echo Выбран диск %SysDisk%
    ::не забыть добить несколько дисков
    pause
     
        sfc /scannow /OFFBOOTDIR=%SysDisk%:\ /OFFWINDIR=%SysDisk%:\windows
        echo.
         
              IF EXIST %windir%\Logs\CBS\CBS.log (copy /y %windir%\Logs\CBS\CBS.log %SysDisk% && echo Файл CBS.LOG скопирован в папку & echo %SysDisk%)(
                         else Сканирование завершено,серьезных повреждений не обнаружено)                            
                               
                                                           



    echo Для выхода нажмите клавишу ENTER
    pause>nul
    exit /B
     
    хотя это еще не конечный вариант,но основа.
     
    Последнее редактирование модератором: 24 мар 2014
  11. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Все зацените:
    Код (DOS):
    @echo off
    SetLocal EnableExtensions EnableDelayedExpansion
    Chcp 866 >nul
    title sfc /scannow win pe


    Echo Поиск дисков с операционной системой...
    Echo.
    Echo.
    ping -n 3 127.0.0.1 > NUL
    for %%i in (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 "%%i:\Windows\system32\winver.exe" echo. ^
    & echo    Windows на диске %%i: && echo  └----------------------┘ & dir %%i:\users&set disk=%%i
    )
    echo.
    echo.
    echo.
    set SysDisk=%disk%

    echo Ваша сиcтема установлена на диск  %disk% ?
    echo Тогда нажмите клавишу  Enter
    echo.
    echo Если буква диска определена неверно, то введите букву  диска
    echo с восстанавливаемой операционной системой.
    echo.
    echo Например: D
    set /p SysDisk=

    :: Путь к папке WINDOWS восстанавливаемого ПК

    cls
    echo Выбран диск %SysDisk%
    ping -n 3 127.0.0.1 > NUL
    ::все погнали наши городских

     
        sfc /scannow /OFFBOOTDIR=%SysDisk%:\ /OFFWINDIR=%SysDisk%:\windows
        echo.
         
              IF EXIST %windir%\Logs\CBS\CBS.log (copy /y %windir%\Logs\CBS\CBS.log %SysDisk% && echo Файл CBS.LOG скопирован в папку & echo %SysDisk%)else(
              echo Сканирование завершено,серьезных повреждений не обнаружено)                
                                                           

    echo Для выхода нажмите клавишу ENTER
    pause>nul
    Echo ====== Работа скрипта завершена ======
      Echo.
      Echo.
      Echo Скрипт подгтовлен Koza Nozdri
      Echo Сайт: SafeZone.cc
      Echo E-mail: Fire@safezone.cc
      Echo.
      Echo======================================================================
      Echo Бесплатное лечение компьютерных вирусов и решение проблем в работе ПК
        ping -n 15 127.0.0.1 > NUL
      exit /B

      ::Kodova Rokosto joolda

     
    Осталось красоту навести,и еще один момент:
    Как сделать так что бы текст в консоли не пролистывался по мере набора?
    А то когда получаем список учетных записей текст немного уезжает-некрасиво.
    Читал эту тему:
    http://safezone.cc/threads/cmd-nastrojka-interfejsa-i-ehffektivnoe-ispolzovanie-cmd.22632/
    Ничего не нашел...
     
  12. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.498
    Симпатии:
    4.313
    Никак.
    Не получать список, или занулять его вывод >NUL
    Или очищать экран (cls) и затем заново отрисовывать то, что тебе нужно.
     
  13. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Ясно...делаю в ресурс.
     

Поделиться этой страницей