Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 10 (http://forum.oszone.net/forumdisplay.php?f=118)
-   -   [решено] Присвоить букву скрытому сис.разделу. Не работает file .bat (http://forum.oszone.net/showthread.php?t=336515)

new45 03-09-2018 11:18 2829695

Присвоить букву скрытому сис.разделу. Не работает file .bat
 
В командной строке последовательно выполняю команды:
Diskpart
lis vol
sel vol 2
assign
Всё выполняется, буква присваивается.
В Блокнот создаю file .bat, записываю его на флешку.
Запускаю его с флешки с "запуск от админа".
Остаюсь в командной строке с индикацией: Diskpart
Но раздел не видим.
Попробовал запустить другой бат-файл со сценарием:
Diskpart /s lis vol sel vol 2 assign
Тоже ничего не происходит. В чём моя ошибка?
Может файл нельзя запускать в флешки, а поместить его в раздел с Виндой 10?
Спасибо

Petya V4sechkin 03-09-2018 11:24 2829698

new45, нужно создать отдельный текстовый файл со сценарием:
Diskpart Scripts and Examples

new45 03-09-2018 11:41 2829699

Спасибо, в команду надо вписывать не сам сценарий, а имя файла.
И новые вопросы: путь для файла со сценарием надо указывать явно?
Или если этот фай разместить рядом с батником, то только имя?

Непонятно, почему у меня не выполнялся первый батник?
Ведь по-идее должны были выполнится все его "строки":
запуск Diskpart, 1-я команда, 2-я и т.д.
Спасибо

Petya V4sechkin 03-09-2018 11:47 2829701

Цитата:

Цитата new45
Ведь по-идее должны были выполнится все его "строки":
запуск Diskpart, 1-я команда, 2-я и т.д.

Нет, ведь после запуска Diskpart он понятия не имеет о батнике со всеми его строками.
А строки после Diskpart в батнике никак не ассоциированы с Diskpart.

new45 03-09-2018 12:02 2829702

То есть если, построчно всё выполнять в ком.строке, то всё выполняется.
А если при помощи батника - выполнение прекратится при первом же запуске какой-нибудь проги?
Существует ли способ построчного выполнения в ком.строке всего, что прописано для неё в каком-нибудь "сценарии"?
Типа запуск Diskpart, выполнение 1-й ЕГО команды, 2-й и т.д. Выход из Diskpart, Запуск другой проги, выполнение её команд и т.д.
Спасибо.

Petya V4sechkin 03-09-2018 12:07 2829703

Цитата:

Цитата new45
То есть если, построчно всё выполнять в ком.строке, то всё выполняется.

Нет, не так: в командной строке выполняется только первая команда (запуск Diskpart), а остальные три вы вводите не в cmd, а в запущенном Diskpart.

new45 03-09-2018 12:38 2829705

Где размещать файл сценария для diskpart ?

mwz 03-09-2018 13:51 2829711

Вложений: 1
new45, посмотрите приложенный скриншот.
Имя файла сценария вводите с тем путём, где лежит этот файл.

Iska 03-09-2018 16:00 2829726

Можно так:
Код:

(
        echo list volume
        echo select volume 2
        echo assign
) | diskpart.exe

Но зачем Вам там вообще list volume нужен?

new45 04-09-2018 07:20 2829791

Iska ,
конечно не нужен в исполняемом скрипте.
Я так понял, что таким макаром можно одним! скриптом писать как команды cmd (Dos ?) так и команды "внутренне"-запускаемых прог?
Где об этом можно прочитать подробнее? Ещё раз спасибо:)

Iska 04-09-2018 16:48 2829888

Цитата:

Цитата new45
Я так понял, что таким макаром можно одним! скриптом писать как команды cmd (Dos ?) так и команды "внутренне"-запускаемых прог? »

Если искомое приложение читает команды со стандартного потока ввода (stdin), то можно.

Цитата:

Цитата new45
Где об этом можно прочитать подробнее? »

Standard streams - Wikipedia
Command Redirection, Pipes - Windows CMD - SS64.com
Batch files - How To ... Display and Redirect Output

В нашем конкретном случае мы посредством нескольких команд echo осуществляем вывод в стандартный поток вывода (stdout) следующего текста:
Код:

list volume
select volume 2
assign

Этот вывод мы группируем в один поток посредством использования операторных скобок «(» и «)». Затем мы посредством конвеера «|» перенаправляем стандартный поток вывода (stdout) этой группы команд на стандартный поток ввода (stdin) утилиты diskpart.exe, которая читает из него полученные команды и исполняет.

mwz 05-09-2018 20:47 2830093

Цитата:

Цитата Iska
list volume
select volume 2 »

Команда list нужна только для визуального определения номера того объекта, который надо выбрать далее. Если всё делается автоматом (скриптом) — она не нужна, и появляется риск, что обработан будет не тот объект, на который рассчитывали. Вроде так... :sorry:

Iska 05-09-2018 21:42 2830099

mwz, я к тому, что в скрипте от неё ни холодно, ни жарко: даже если что-то увидим — как-то повлиять на работу скрипта diskpart'а не сможем (NOERR тут не в счёт).

mwz 05-09-2018 21:52 2830102

Цитата:

Цитата Iska
в скрипте от неё ни холодно, ни жарко »

Во-во. :)


Время: 13:27.

Время: 13:27.
© OSzone.net 2001-