Показать полную графическую версию : Проверка отформатированности диска
Nuclears
18-09-2011, 20:41
Собственно вопрос такой:
например, диск D не отформатирован, его нужно форматнуть....
а как осуществить эту проверку, для NTFS я так придумал
IF EXIST "D:\System Volume Information" (
ECHO "Отформатирован"
) ELSE (
ECHO "НЕ Отформатирован"
rem echo y | format d: /FS:NTFS /V:DATA /Q
format d: /FS:NTFS /V:DATA /Q /Y
)
а вот если диск имеет файловую систему FAT/FAT32....
вообще в идеале именно проверку того, что он отформатирован/не отформатирован бы сделать.....
Заранее спасибо :)
подобная тема
http://forum.oszone.net/thread-174368.html
Nuclears, используйте фильтрованный вывод сценария DISKPART, fsutil.exe или wmic.exe. У меня нет свободного раздела, дабы проверить. Попробуйте разные варианты:
@echo off
setlocal enableextensions enabledelayedexpansion
set sDrive=D:
for /f "tokens=5" %%i in (
'^(echo select volume %sDrive%^&echo detail partition^)^|diskpart.exe^|find.exe "*"'
) do set sFileSystem=%%i
if defined sFileSystem echo 1. %sFileSystem%
set sFileSystem=
for /f "usebackq tokens=2 delims==" %%i in (
`wmic.exe LogicalDisk where "Name='%sDrive%'" get FileSystem /value^|find.exe /i "FileSystem"`
) do set sFileSystem=%%i
if defined sFileSystem echo 2. %sFileSystem%
set sFileSystem=
for /f "tokens=4 delims=: " %%i in (
'fsutil.exe fsinfo volumeinfo %sDrive%^|find.exe /i "Имя файловой системы"'
) do set sFileSystem=%%i
if defined sFileSystem echo 3. %sFileSystem%
endlocal
exit /b 0
Nuclears
19-09-2011, 00:07
Iska, благодарствую!
но, мну пока тока начинает осваивать и консоль и тем более wmi....
могли бы откомментировать строчки?)
по идее работает, но не могу осмыслить циклы for....
ЗЫЖ тестеры виртуальными машинами правят)
к делу не относиться, но при отсутсвии логического раздела сообщает "Отсутствуют экземпляры класса."
при существующем разделе,
1. сообщает "Раздел"
2. и 3. соответсвенно пусто....
при отформатированном разделе,
1., 2, и 3. NTFS/FAT/FAT32
т.е.
setlocal enableextensions enabledelayedexpansion
set sDrive=D:
for /f "tokens=5" %%i in (
'^(echo select volume %sDrive%^&echo detail partition^)^|diskpart.exe^|find.exe "*"'
) do set sFileSystem=%%i
IF %sFileSystem%==Раздел (
format d: /FS:NTFS /V:DATA /Q /Y
)
будет ли это работать на T-12, конечно сам проверю и напишу, но может кто проверял?)
ух, создаю сложности......
допустим(крайне редко, но тем не менее):
C:==%SYSTEMDRIVE% (Win7)
D:==%SYSTEMDRIVE%(WinXP)
E:==неформатированный раздел
F:==%CDROM%
нужно автоматом форматнуть Е: (установка win xp на D:\)....
вспоминается код, присваивания переменной %CDROM%
SetLocal EnableExtensions DisableDelayedExpansion
SetLocal EnableDelayedExpansion
Title Установка переменной %CDROM%
rem Выполнилось на T-12
rem из папки %CDROM%\$OEM$
@Echo Off
FOR %%? 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 /I "%%?:" NEQ "%SYSTEMDRIVE%" CALL :SUB "%%?:" &&GOTO START)
GOTO ENDIT
:START
setenv.exe -m CDROM %CDROM%
:ENDIT
ENDLOCAL &GOTO :EOF
:SUB
IF NOT EXIST %~1\WIN51 EXIT/B 1
SET "CDROM=%~1"
EXIT/B 0
но в нашем случае, имхо, придется перебирать все буковки, либо перебирать до, например IF EXIST %CDROM%\LABEL, и каждый последующий раздел форматировать, если он не форматирован....
вообщем, как такое дело оптимизировать на T-12 (автоматическая установка WinXP)?
могли бы откомментировать строчки?) »
Пока нет времени.
ЗЫЖ тестеры виртуальными машинами правят) »
Верно. Но на данной машине на данный момент я и так перебрал около 700 Мб лишних (и буду «добирать» ещё). Потому и не стал даже пытаться запускать ВМ.
к делу не относиться, но при отсутсвии логического раздела сообщает "Отсутствуют экземпляры класса." »
Логично.
Не могли бы Вы пояснить некоторые моменты:
1. Процесс будет происходить на этапе установки?
2. Процесс будет происходить именно на этапе T-12 установки?
3. Каким образом получается, что раздел/логический диск/том не отформатирован, но имеет назначенную букву?
будет ли это работать на T-12 »
Не знаю. Но, думаю, проверяется просто: "cmdlines.txt" "T-12" diskpart (http://www.google.ru/search?q=%22cmdlines.txt%22+%22T-12%22+diskpart).
Nuclears
19-09-2011, 22:11
3. Каким образом получается, что раздел/логический диск/том не отформатирован, но имеет назначенную букву? »
тоже подумав, по логике вещей, буквы не должно быть, но если разметку делать виндой, то будет))))
http://i048.radikal.ru/1109/4c/395a2eba2cebt.jpg (http://i048.radikal.ru/1109/4c/395a2eba2ceb.jpg)
подумав пораскидывая мозгами по комнате....
rem Создадим метку
ECHO HDD-D > "D:\HDD-D"
rem проверим-с
IF NOT EXIST D:\HDD-D (
format d: /FS:NTFS /V:DATA /Q /Y
)
повесил данное дело в [GuiRunOnce]
работает!
так же проверил первый вариант предложенный Вами, Iska
и тоже работает)))
в T-12 мой вариант...
http://s008.radikal.ru/i305/1109/3a/ba6369a23d54t.jpg (http://s008.radikal.ru/i305/1109/3a/ba6369a23d54.jpg)
работает
ЗЫЖ а какая кодировка должна быть чтобы не кракозябрами писал?)))
Nuclears
20-09-2011, 00:28
ИТОГ:
т.к. счас у мну загрузчик базируется на ISOLinux + (VOLM,VOLS,VOLD) -> для каждой из них WINNT.SIA...WINNT.SIZ ->решил выделить по буковке из каждой категории для установки и запуска форматирования из [GuiRunOnce] по своему методу (создание и проверка метки :), т.е. выделил отдельный пунк меню установки, связано это с тем, что, нет уверенности в работоспособности скриптов с GPT разделами, а информация на винте превыше всего.....)
Iska, Вам отдельное спасибо!
но буду ждать комментарий, осмыслить код хочу)
ЗЫЖ:
даже незнаю как выразить словами , остатки, те что не раскидывал, вскипели :crazy:
счас разбираюсь с \Device\Harddisk#\Partition#, чтобы добавить в переменные среды свои параметры дисков, например %SYSTEMDRIVE% - это C:, %SYSTEMDRIVE%+1 - сделать %DATADRIVE%
(связано это с тем, что, например, папку мои документы мну перенес в D:\MY_DOCUMENTS давно(реестровый твик, что не есть хорошо), а автоматизацию не доделал, т.е. в идеале %DATADRIVE%\MY_DOCUMENTS)
вообщем, у кого есть какие либо заметки по этому, буду благодарен :pray:
тоже подумав, по логике вещей, буквы не должно быть, но если разметку делать виндой, то будет)))) »
Видите ли, если именно создавать разделы при установке с нули, то окажется, что эти буквы не имеют никакого отношения к тем буквам, которые окажутся назначенными в самой Windows XP, и дают лишь представление о том, в какой последовательности будут расположены разделы и логические диски в Windows (например, накопитель на оптических дисках может получить букву «D:», а «D:» с экрана установки станет в Windows — «E:»; при наличии подключённого кардридера именно он может получить буквы от «C:» до «F:», а а C: с экрана установки станет в Windows — «H:»). Хуже того — мы не можем из этого экрана управлять, будут ли созданы основные разделы (помимо самого первого, который всегда будет основным), или же дополнительный раздел с логическими дисками на нём. А вот если попробовать создавать только один, первый раздел, а другой/остальные — программно, например — сценарием diskpart,
P.S. Меня, кстати, этот вопрос тоже весьма занимает, но всё не было времени вплотную сим заняться.
ЗЫЖ а какая кодировка должна быть чтобы не кракозябрами писал?))) »
Как обычно — 866. Но лучше ограничьтесь латиницей, это проще, нежели искать, отчего не работает (и может ли вообще работать на этом этапе).
Nuclears
20-09-2011, 01:17
Видите ли, если именно создавать разделы при установке... »
Тут не соглашусь.... практика показала:
при наличии кардридера и одного CD/DVD: разметка в установке будет C-F(G,H)-кардридер, далее HDD(PrimaryPartition), CD/DVD, далее Logical Partitions (обычно мну кардридер отключает для установки)
кстати, если после первичной разметки перезапустить установку, то HDD(PrimaryPartition) станет C
при отсутсвии кардридера:
A) винт не имеет разделов(например новый): HDD(PrimaryPartition)-C, CD/DVD(если 1шт)-D, все остальное (Logical Partitions)
http://i043.radikal.ru/1109/ba/f4175c66ea4bt.jpg (http://i043.radikal.ru/1109/ba/f4175c66ea4b.jpg)
но тут добавлю, если после первичной разметки, удалить все партиции, то будет как на скрине выше
B) винт имеет уже разделы: ну тут предсказать сложно, а если еще и GPT....
вообщем итог(проверенный на сотнях машин): 99% какая разметка в установочнике, такая и под виндами
diskpart пока тока хелпы почитал... но судя по всему именно в создании сценария и лежит решение (как раньше для PQ Magic :) )
по поводу нескольких primary, отказался от такой затеи давно, Win это не *nix, где по человечески слайсы и партиции..., хотя начиная с Win7 мне GPT симпотизирует :)
Как обычно — 866 »
омм....
http://s48.radikal.ru/i120/1109/2d/06956ff722dat.jpg (http://s48.radikal.ru/i120/1109/2d/06956ff722da.jpg)
так же пробовал CHCP866, CHCP1251 и т.д.(сами файлы в разных кодировках), всегда кракозябры (у меня на T-12 %CDROM% создается)
и может ли вообще работать на этом этапе »
вот-вот.... я так и не добился положительного результата :(, хотя на T-12 у меня никакого взаимодействия с пользователем, поэтому не критично, но на будущее хотел узнать, может чего не правильно делаю :)
Тут не соглашусь.... практика показала:
при наличии кардридера и одного CD/DVD: разметка в установке будет C-F(G,H)-кардридер, далее HDD(PrimaryPartition), CD/DVD, далее Logical Partitions (обычно мну кардридер отключает для установки) »
Я про то же. Значит, просто не поняли друг друга. Я тоже предпочитаю отключать кардридер при установке. Иногда (при опломбированном корпусе приходится вырубать USB контроллер целиком).
кстати, если после первичной разметки перезапустить установку, то HDD(PrimaryPartition) станет C »
Будет возможность — опробую.
кстати, если после первичной разметки перезапустить установку, то HDD(PrimaryPartition) станет C
при отсутсвии кардридера: »
Угу.
A) винт не имеет разделов(например новый): HDD(PrimaryPartition)-C, CD/DVD(если 1шт)-D, все остальное (Logical Partitions) »
Тоже при случае посмотрю этот случай на счёт отображения букв на этапе установки, возможно подзабыл.
по поводу нескольких primary, отказался от такой затеи давно, »
Отчего?
так же пробовал CHCP866, CHCP1251 и т.д.(сами файлы в разных кодировках), всегда кракозябры (у меня на T-12 %CDROM% создается) »
Я ж говорил — тут сложно сказать, чего именно не хватает для отображения кириллицы на T-12, а вариантов может быть предостаточно. Я этим не озадачивался.
а какая кодировка должна быть чтобы не кракозябрами писал?))) » [решено] Корректное отображение кириллицы в командной строке запущенной на T40 (http://forum.oszone.net/thread-175848.html)
Nuclears
22-09-2011, 02:47
Отчего? »
ну как сказать, два примари раздела без нормального загрузчика(например GRUB4DOS) просто баловство :)
а в работе, обычно этого не требуется и вовсе :)
Amigos, благодарствую, но ну ее нафик, эту кирилицу в T-40(T-12) :)
Nuclears, это подмена аргументов. Чем логические диски в дополнительном разделе лучше, нежели до трёх основных разделов (помимо первого)?
Nuclears
22-09-2011, 15:43
Чем логические диски в дополнительном разделе лучше, нежели до трёх основных разделов (помимо первого)? »
множество раз бывали случаи сбоя активного диска, и он становился скрытым разделом, в с одним примари дополнительными никогда такого не происходило(это касается только WinNT, Win2k, WinXP, Win2k3, т.е. тех, кто не понимают нативно GPT)
множество раз бывали случаи сбоя активного диска, и он становился скрытым разделом, а с одним примари и дополнительными никогда такого не происходило »
Значит, Вам «везло». Ни разу подобного не видел, и слышать доселе не приходилось.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.