Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка отформатированности диска

Ответить
Настройки темы
CMD/BAT - Проверка отформатированности диска

Новый участник


Сообщения: 17
Благодарности: 6


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Nuclears
Дата: 22-09-2011
Описание: add link
Собственно вопрос такой:
например, диск 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

Отправлено: 20:41, 18-09-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:57, 18-09-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 17
Благодарности: 6

Профиль | Отправить PM | Цитировать


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)?

Последний раз редактировалось Nuclears, 19-09-2011 в 00:55.


Отправлено: 00:07, 19-09-2011 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Nuclears:
могли бы откомментировать строчки?) »
Пока нет времени.
Цитата Nuclears:
ЗЫЖ тестеры виртуальными машинами правят) »
Верно. Но на данной машине на данный момент я и так перебрал около 700 Мб лишних (и буду «добирать» ещё). Потому и не стал даже пытаться запускать ВМ.
Цитата Nuclears:
к делу не относиться, но при отсутсвии логического раздела сообщает "Отсутствуют экземпляры класса." »
Логично.

Не могли бы Вы пояснить некоторые моменты:
1. Процесс будет происходить на этапе установки?
2. Процесс будет происходить именно на этапе T-12 установки?

3. Каким образом получается, что раздел/логический диск/том не отформатирован, но имеет назначенную букву?

Цитата Nuclears:
будет ли это работать на T-12 »
Не знаю. Но, думаю, проверяется просто: "cmdlines.txt" "T-12" diskpart.

Последний раз редактировалось Iska, 19-09-2011 в 03:53. Причина: Убраны отпавшие вопросы после Вашей правки


Отправлено: 03:40, 19-09-2011 | #4


Новый участник


Сообщения: 17
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Iska:
3. Каким образом получается, что раздел/логический диск/том не отформатирован, но имеет назначенную букву? »
тоже подумав, по логике вещей, буквы не должно быть, но если разметку делать виндой, то будет))))


подумав пораскидывая мозгами по комнате....


Код: Выделить весь код
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 мой вариант...

работает


ЗЫЖ а какая кодировка должна быть чтобы не кракозябрами писал?)))

Последний раз редактировалось Nuclears, 20-09-2011 в 01:48.


Отправлено: 22:11, 19-09-2011 | #5


Новый участник


Сообщения: 17
Благодарности: 6

Профиль | Отправить PM | Цитировать


ИТОГ:
т.к. счас у мну загрузчик базируется на ISOLinux + (VOLM,VOLS,VOLD) -> для каждой из них WINNT.SIA...WINNT.SIZ ->решил выделить по буковке из каждой категории для установки и запуска форматирования из [GuiRunOnce] по своему методу (создание и проверка метки , т.е. выделил отдельный пунк меню установки, связано это с тем, что, нет уверенности в работоспособности скриптов с GPT разделами, а информация на винте превыше всего.....)

Iska, Вам отдельное спасибо!
но буду ждать комментарий, осмыслить код хочу)

ЗЫЖ:
даже незнаю как выразить словами , остатки, те что не раскидывал, вскипели
счас разбираюсь с \Device\Harddisk#\Partition#, чтобы добавить в переменные среды свои параметры дисков, например %SYSTEMDRIVE% - это C:, %SYSTEMDRIVE%+1 - сделать %DATADRIVE%
(связано это с тем, что, например, папку мои документы мну перенес в D:\MY_DOCUMENTS давно(реестровый твик, что не есть хорошо), а автоматизацию не доделал, т.е. в идеале %DATADRIVE%\MY_DOCUMENTS)
вообщем, у кого есть какие либо заметки по этому, буду благодарен

Последний раз редактировалось Nuclears, 20-09-2011 в 00:49.


Отправлено: 00:28, 20-09-2011 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Nuclears:
тоже подумав, по логике вещей, буквы не должно быть, но если разметку делать виндой, то будет)))) »
Видите ли, если именно создавать разделы при установке с нули, то окажется, что эти буквы не имеют никакого отношения к тем буквам, которые окажутся назначенными в самой Windows XP, и дают лишь представление о том, в какой последовательности будут расположены разделы и логические диски в Windows (например, накопитель на оптических дисках может получить букву «D:», а «D:» с экрана установки станет в Windows — «E:»; при наличии подключённого кардридера именно он может получить буквы от «C:» до «F:», а а C: с экрана установки станет в Windows — «H:»). Хуже того — мы не можем из этого экрана управлять, будут ли созданы основные разделы (помимо самого первого, который всегда будет основным), или же дополнительный раздел с логическими дисками на нём. А вот если попробовать создавать только один, первый раздел, а другой/остальные — программно, например — сценарием diskpart,

P.S. Меня, кстати, этот вопрос тоже весьма занимает, но всё не было времени вплотную сим заняться.

Цитата Nuclears:
ЗЫЖ а какая кодировка должна быть чтобы не кракозябрами писал?))) »
Как обычно — 866. Но лучше ограничьтесь латиницей, это проще, нежели искать, отчего не работает (и может ли вообще работать на этом этапе).
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:52, 20-09-2011 | #7


Новый участник


Сообщения: 17
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Iska:
Видите ли, если именно создавать разделы при установке... »
Тут не соглашусь.... практика показала:
при наличии кардридера и одного 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)

но тут добавлю, если после первичной разметки, удалить все партиции, то будет как на скрине выше
B) винт имеет уже разделы: ну тут предсказать сложно, а если еще и GPT....

вообщем итог(проверенный на сотнях машин): 99% какая разметка в установочнике, такая и под виндами

diskpart пока тока хелпы почитал... но судя по всему именно в создании сценария и лежит решение (как раньше для PQ Magic )

по поводу нескольких primary, отказался от такой затеи давно, Win это не *nix, где по человечески слайсы и партиции..., хотя начиная с Win7 мне GPT симпотизирует

Цитата Iska:
Как обычно — 866 »
омм....

так же пробовал CHCP866, CHCP1251 и т.д.(сами файлы в разных кодировках), всегда кракозябры (у меня на T-12 %CDROM% создается)

Цитата Iska:
и может ли вообще работать на этом этапе »
вот-вот.... я так и не добился положительного результата , хотя на T-12 у меня никакого взаимодействия с пользователем, поэтому не критично, но на будущее хотел узнать, может чего не правильно делаю

Последний раз редактировалось Nuclears, 20-09-2011 в 03:12.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:17, 20-09-2011 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Nuclears:
Тут не соглашусь.... практика показала:
при наличии кардридера и одного CD/DVD: разметка в установке будет C-F(G,H)-кардридер, далее HDD(PrimaryPartition), CD/DVD, далее Logical Partitions (обычно мну кардридер отключает для установки) »
Я про то же. Значит, просто не поняли друг друга. Я тоже предпочитаю отключать кардридер при установке. Иногда (при опломбированном корпусе приходится вырубать USB контроллер целиком).

Цитата Nuclears:
кстати, если после первичной разметки перезапустить установку, то HDD(PrimaryPartition) станет C »
Будет возможность — опробую.
Цитата Nuclears:
кстати, если после первичной разметки перезапустить установку, то HDD(PrimaryPartition) станет C
при отсутсвии кардридера: »
Угу.
Цитата Nuclears:
A) винт не имеет разделов(например новый): HDD(PrimaryPartition)-C, CD/DVD(если 1шт)-D, все остальное (Logical Partitions) »
Тоже при случае посмотрю этот случай на счёт отображения букв на этапе установки, возможно подзабыл.
Цитата Nuclears:
по поводу нескольких primary, отказался от такой затеи давно, »
Отчего?
Цитата Nuclears:
так же пробовал CHCP866, CHCP1251 и т.д.(сами файлы в разных кодировках), всегда кракозябры (у меня на T-12 %CDROM% создается) »
Я ж говорил — тут сложно сказать, чего именно не хватает для отображения кириллицы на T-12, а вариантов может быть предостаточно. Я этим не озадачивался.

Отправлено: 08:15, 20-09-2011 | #9


Модератор


Moderator


Сообщения: 8282
Благодарности: 2856

Профиль | Отправить PM | Цитировать


Цитата Nuclears:
а какая кодировка должна быть чтобы не кракозябрами писал?))) »
[решено] Корректное отображение кириллицы в командной строке запущенной на T40
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:55, 21-09-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка отформатированности диска

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер - проверка драёверов (с диска) tvkorob Microsoft Windows 2000/XP 2 18-07-2011 12:20
Проверка Диска RuLe Хочу все знать 8 05-01-2007 20:05
проверка диска win98 vilisz Microsoft Windows 95/98/Me (архив) 4 22-09-2006 13:31
Не выполняется проверка диска C: Guest Microsoft Windows 95/98/Me (архив) 26 11-05-2004 19:04
Проверка системного диска Guest Microsoft Windows 95/98/Me (архив) 2 29-12-2003 21:05




 
Переход