Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 8

Автор: Sereoga
Дата сообщения: 26.01.2010 22:53
king_stiven
Спасибо, помогло!
Автор: takt03
Дата сообщения: 27.01.2010 00:27
Всем привет. У меня как всегда глупый вопрос. Вы будете смеятся но делать не чего:
короче пишу в бат
@echo on
reg add "HKLM\software\microsoft\Windows NT\CurrentVersion\winlogon\specialAccounts\userlist" /v so31aa /t REG_DWORD /d 00000000
pause

Запускаю и появляется следующее

pecialAccounts\userlist" /v so31aa /t REG_DWORD /d 00000000

D:\111\tel>reg add "HKLM\software\microsoft\Windows NT\CurrentVersion\winlogon\s
pecialAccounts\userlist" /v so31aa /t REG_DWORD /d 00000000

D:\111\tel>reg add "HKLM\software\microsoft\Windows NT\CurrentVersion\winlogon\s
pecialAccounts\userlist" /v so31aa /t REG_DWORD /d 00000000

И так далее без остановки.....
Если ручками в смд пишу то всё работает. Ещё раз извеняюсь за глупый вопрос но деваться не куда, в книге не чего об этом не нписанно

echo on
cd\
reg add "HKLM\software\microsoft\Windows NT\CurrentVersion\winlogon\specialAccounts\userlist" /v so31aa /t REG_DWORD /d 00000000
exit

Решил проблему сам. Но может кому пригодится при работе с реестром.
Автор: drongo8
Дата сообщения: 27.01.2010 01:25
Всем привет!
Подскажите пожалуйста, как установить винду на нулёвый ноут?
Нужноформатировать винчестер и разбить на диски!
Как это зделать?
Автор: wolf0425
Дата сообщения: 27.01.2010 05:41
drongo8 ты темой ошибся - тут про батники, а не про винду.
А вообще - грузишься с установочного диска виндов и всё делаешь.
Автор: digital422
Дата сообщения: 27.01.2010 06:30
Подскажите, что не хватает для %DATA0% ? date.exe из комплекта UnxUtils.

set DATE0="d:/bin/date.exe +%%Y-%%m-%%d"

%DATE0% - # показывает дату 2010-01-26

set IN=d:/data-in/%DATE0% - # тут вместо %DATA0% - d:/data-in/d:\bin\date.exe +%Y-%m-%d
Автор: native1
Дата сообщения: 27.01.2010 10:21
спасибо
Автор: Kirillhome
Дата сообщения: 27.01.2010 10:56
native1
См. в шапке - Администрирование, автоматизация и сеть - Пример выполнения команд по результату команды ping
Автор: Maikl_relax
Дата сообщения: 27.01.2010 15:20
Всем привет!
Подскажите как найти все папки "NAME2" в "F:\NAME1" и удалить вместе с содержимым "NAME2"?
Либо адаптировать скриптик, котрый уже здесь был, но не работает.

@Echo Off
CHCP 1251 > Nul

Set TmpPath=F:\NAME1
Set InStrVar=NAME2
Set FilesMask=*.*

For /R "%TmpPath%" %%i In (.) Do Call :CheckTemp "%%i"

:CheckTemp
Set CurrDir=%~1
Set CurrDir=%CurrDir:~0,-2%

For %%a In ("%CurrDir%") Do Set "DirName=%%~nxa"

For /F "delims=" %%b In ('Echo %DirName%^| Find /I "%InStrVar%"') Do Set "DelPath=%CurrDir%\%FilesMask%"

If /I Exist "%DelPath%" (
Del /Q /F "%DelPath%"
) Else (
Exit /b 1
)

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

PS в перменных окружения кавычки ставил, последнюю строку из батника убирал- не помогает.
Автор: den06051979
Дата сообщения: 27.01.2010 15:39
Помогите пожалуйста вот с такой ситуацией:

Мне нужно из bat файла запустить exe файл и передать ему 3 параметра
Тут запускается плеер и ему надо передать плейлист и 2 параметра его запуска.
У меня получается только чтобы он подхватил плейлист, а надо чтобы и параметры /play /fullscreen подхватил тоже.

start /B /NORMAL "C:\Program Files\SAM CoDeC Pack\Players\MPCHC\mpc-hc.exe" "D:\TV+\10.2009\10.2009_disk_D.m3u" /play /fullscreen

Такая вот конструкция у меня не работает!
Автор: wolf0425
Дата сообщения: 27.01.2010 15:48
Maikl_relax проверяй


Код: rd /q/s "f:\name1\name2" 2>nul
for /f "delims=" %%a in (' dir /b/s/a:d "f:\name1\name2" ') do rd /q /s "%%~fa"
Автор: Maikl_relax
Дата сообщения: 27.01.2010 16:06
wolf0425
не все так просто ))))
f:\name1 это статическое имя ктрое я могу задать в батнике, а вот name2 - шаблон!
то есть рекурсивно из
f:\name1
нужно удалить
f:\name1\1\dir
f:\name1\2\dir
f:\name1\3\dir
и т.д.
f:\name1\1\1\dir
f:\name1\2\1\dir
и т.д.

Что бы было проще понять- есть N Баз 1С 7.7, лежат в f:\name1 Из каждой базы нужно снести NEW_STRU вместе с одрежимым. Я конечно могу скопипастить все пути, но это уже не автоматизация =) А N>100 ^)

Автор: wolf0425
Дата сообщения: 27.01.2010 17:04

Цитата:
wolf0425
не все так просто ))))
f:\name1 это статическое имя ктрое я могу задать в батнике, а вот name2 - шаблон!
то есть рекурсивно из
f:\name1
нужно удалить
f:\name1\1\dir
f:\name1\2\dir
f:\name1\3\dir
дада, именно оттуда и удалит. ты проверь

в dir /b/s/a:d "f:\name1\name2"
f:\name1\ - это путь откуда начать сканировать с подкаталогами ( /s )

а name2 - это маска подкаталога (/a:d) что надо найти
по подкаталогам указанного пути f:\name1\

но вот если есть "f:\name1\name2\" - то просто показывает каталоги из него, а не все каталоги name2\ из подкаталогов "f:\name1\" (как это обойти - приудмали ниже)
Автор: Kirillhome
Дата сообщения: 27.01.2010 17:38
wolf0425

Цитата:

Код: for /f "delims=" %%a in (' dir /b/s/a:d "f:\name1\name2" ') do rd /q /s "%%~fa"

сразу скажу - будет проблема когда "f:\name1\name2" существует но ее удалить не удается
Автор: Pacho
Дата сообщения: 27.01.2010 18:05
Как сделать, чтобы для
Код: if [not] Строка1==Строка2 command
Автор: wolf0425
Дата сообщения: 27.01.2010 18:51

Цитата:
А вот так - не будет
а, неплохое решение.
только все же do (if /i "%%~nxa"=="name2" (echo "%%~fa"))


Добавлено:
Pacho
Цитата:
выводилось на экран только command?
а зачем тебе вообще что-то чтоб выводилось там? @echo off в начало батника поставь, а где чего надо печатать - печатай сам.

Автор: Ykidia
Дата сообщения: 27.01.2010 19:00
Kirillhome
Вообще-то имелся в виду размер именно диска, а не раздела. Т.е. disk в терминологии diskpart.exe.
С размером ладно, а как мне при наличии устройства с буквой E (раздел на диске, привод компакт-дисков, флэшка и т.д.) поменять ему букву на какую-нибудь неиспользуемую?
Можно просто размонтировать, но тогда устройство (например, cdrom) потеряется в системе и монтировать потом придется вручную, поэтому нужно именно поменять букву.
Автор: BumerangII
Дата сообщения: 27.01.2010 19:06
Подскажите как реализовать?

необходимо проверить наличие в текстовом файле определнной строки.
Если строки нет - то добавить
Если строка есть - то перейти к следующему действию

в интерактивном режиме читаю файл
Код: find "10.3.52.36"< %windir%\system32\drivers\etc\hosts
Автор: wolf0425
Дата сообщения: 27.01.2010 19:10
Ykidia монтирование/размонтирование разделов производится командой mountvol - ей наличие букв до нее совершенно фиолетово.
А для доступа системы к левому диску - отдельная буква ему не нужна тоже.
Нелевыми дисками являются только диск с системой и диск со свопфайлом.


Добавлено:
BumerangII

Код: find "10.3.52.36"< %windir%\system32\drivers\etc\hosts && echo Found!
Автор: Ykidia
Дата сообщения: 27.01.2010 19:16
wolf0425
Моя проблема более полно описана здесь. Т.о. про mountvol я в курсе. Речь не идет о доступе системы к дискам, речь идет о том, чтобы освободить конкретную букву (E: ) для своих определенных целей, при этом чтобы все диски, доступные пользователю ранее, остались доступны и после.
Автор: king_stiven
Дата сообщения: 27.01.2010 19:25
Ykidia
может поможет
Команды DiskPart
online

Подключение отключенного диска или тома, на который установлен фокус.

Синтаксис
online [noerr]
Автор: Ykidia
Дата сообщения: 27.01.2010 19:26
Используя mountvol я могу довольно просто размонтировать что-либо, но как также просто смонтировать обратно? Как я понял, для монтирования надо точно знать некое длинное название устройства (список которых выводится при вызове mountvol без параметров и этот список разный для разных машин), а для этого надо производить какие-то дополнительные телодвижения, и я не знаю как. Если несложно, подскажите, как или хотя бы куда копать.

king_stiven
Что касается diskpart.exe online, это подходит только для видимых diskpart'у дисков, т.е., скажем, привод компакт-дисков diskpart'ом не выбрать и, соответственно, не смонтировать.
Простая ситуация. Установили Windows Server 2003 на голый винт PATA. При этом создали два раздела - C: и D:, поэтому DVD-ROM будет висеть на E:. А в инструкции и в скриптах идет привязка к букве E: как к разделу на RAID0. Можно поменять букву, но это глобально проблему не решит, если выбранная буква опять будет кем-то занята.
Итак, установили ОС, сконфигурили RAID0, далее запустили скрипт, который создаст и отформатирует раздел на RAID0, после чего смонтирует раздел на E:. При этом DVD-ROM или какая-нибудь флэшка, привязанная к этой букве ранее, будет размонтирован(а) и в дальнейшем автоматически монтироваться системой не будет. Что сделает конечный пользователь? Правильно, начнутся вопросы, а куда пропала моя флэшка/DVD-ROM/внешний FireWire-накопитель и т.д. Придется объяснять ему, куда лезть, возможно, направлять по телефону, а это немного не то, что ожидается от автоматизации
Автор: king_stiven
Дата сообщения: 27.01.2010 20:26
Ykidia
Приведи пример как можно смонтировать с помощью mountvol.
Автор: Ykidia
Дата сообщения: 27.01.2010 20:36
king_stiven
Получение списка устройств и подключений:

Код: C:\>mountvol
Создание, удаление и просмотр точек подключения.

MOUNTVOL [<диск>:]<путь> <имя тома>
MOUNTVOL [<диск>:]<путь> /D
MOUNTVOL [<диск>:]<путь> /L

<путь> Существующая папка NTFS, в которой будет
располагаться точка подключения.
<имя тома> Имя подключаемого тома.

/D Удаление точки подключения тома из заданной папки.
/L Вывод списка имен подключенных томов для заданной папки.

Возможные значения имени тома вместе с текущими точками подключения:

\\?\Volume{b0132466-b5ab-11dd-8f92-806d6172696f}\
C:\

\\?\Volume{09717294-cd09-11dd-b053-806d6172696f}\
E:\

\\?\Volume{b0132465-b5ab-11dd-8f92-806d6172696f}\
Z:\

\\?\Volume{b0132464-b5ab-11dd-8f92-806d6172696f}\
A:\
Автор: king_stiven
Дата сообщения: 27.01.2010 20:50
Ykidia
mountvol Z: \\?\Volume{b0132465-b5ab-11dd-8f92-806d6172696f}
у мен не сработал с моим GUID
Автор: Ykidia
Дата сообщения: 27.01.2010 20:54
А как проявилось то, что не сработал?
Автор: king_stiven
Дата сообщения: 27.01.2010 21:02
Ykidia
может поможет сначала переназначить с E на лругую букву
Команды DiskPart
assign

Назначение буквы диска или точки подключения тому, имеющему фокус. Если буква диска или точка подключения не указана, используется следующая доступная буква. Если буква диска или точка подключения уже используется, возникает ошибка.

Команду assign можно использовать для смены буквы диска, связанной со съемным диском.

Нельзя назначать буквы дисков системным томам, загрузочным томам или томам, содержащим файл подкачки. Кроме того, буква диска не может быть назначена разделу ИВТ или разделу GPT, отличному от раздела MSDATA.
Синтаксис
assign [{letter=d|mount=путь}] [noerr]


Добавлено:

Цитата:
А как проявилось то, что не сработал?

Параметр задан неверно.

Добавлено:
Ykidia
assign letter=Z
сработало,
то есть сначала делай проверку на зантость E и в случае зантости переназначь.
Автор: Ykidia
Дата сообщения: 27.01.2010 21:12
king_stiven
diskpart не работает у меня с DVD-ROM, поэтому diskpart отпадает.


Цитата:
Параметр задан неверно.

Такое происходит в нескольких случаях: 1) если ошибка в имени тома; 2) если указанный том уже смонтирован (кажется, у тебя этот случай)
Автор: Kirillhome
Дата сообщения: 27.01.2010 21:14
Ykidia
Переназначение (если надо) буквы.


Код:
@echo off
set Old_Vol="No"
Set L_Free="c:\"
rem Нашли последнюю свободную букву (L_Free)
for %%i in (d e f g h i j k l m n o p q r s t u v w x y z) do (
mountvol %%i:\ /L>nul||(set L_Free=%%i:\)
)

if L_Free=="c:\" (
echo No Free!!!
Goto :EOF
)
rem Проверили, если есть что-то на E:\ - то присвоили это в Old_Vol
mountvol E:\ /L>nul&&FOR /F %%a in ('mountvol E:\ /L') do (set "Old_Vol=%%a")

if NOT Old_Vol=="No" (
rem Размонтрируем E:
mountvol.exe E: /D
mountvol.exe /R
rem Смонтируем на новом месте
mountvol %L_Free% %Old_Vol%
)

rem ну, и всё, что там далее - связанное со скриптом...
Автор: Ykidia
Дата сообщения: 27.01.2010 21:17
Kirillhome
О! Как раз то, что надо, спасибо!
Автор: Kirillhome
Дата сообщения: 27.01.2010 21:28
Ykidia
Есть засады:
1) mountvoll - не вывел мне информацию о виртуальном приводе (реального - нет, проверить не могу).
2) mountvoll - не вывел мне информацию о подмепленном сетевом диске (т.е. net use * \\ресурс\шара - Диск z cейчас подключен, смотрю через mountvoll - нет ничего).

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.