Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
· Переход из 32-битной версии cmd.exe в 64-битную

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Upek
-R/--remote-time   Set the remote file's time on the local output

Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 19:32 22-07-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые, помогите сделать батник !
 
надо в локальной папке , в файле LastData.txt с таким содержимым:
ftp.rr.ry.ru
True
pet
tec
True
False
 
1.exe
2.exe
3.exe
и т.д.
 
заменить только строчки
pet
tec
 
на  
 
ted
lor
 
а потом запустить файл ftpCo.exe

Всего записей: 1497 | Зарегистр. 28-10-2007 | Отправлено: 23:22 22-07-2009
Real Root



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Товарищи, стоит задача обработать все файлы в текущем каталоге и всех его подкаталогах, кроме файлов *.exe командой cacls. Написал следующий скрипт:

Код:
@Echo off & SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /f "usebackq delims=" %%I IN (`DIR "D:\111\test\*.*" /B /S`) DO (
IF /I %%~xI==.exe (echo %%I exe file >> NUL) else (
cacls %%I /e /G Admin:F)
)
pause

Но проблема в том, что, она обрабатывает и подкаталоги. Как заставить игнорировать подкаталоги?
 
Если объяснять цель, то суть такова: Есть расшаренная папка, я на нее устанавливаю по-умолчанию права на только чтение. Потом обрабатываю скриптом, и получается что все файлы, кроме exe можно будет изменять. Просто сеть смешанная и совмещена с другим подразделением предприятия где работает админ ПРОТЖ, и у которого вирусы по сети гуляют, как у себя домаю. Требуется запретить изменение всех exe файлов в расщаринных папках. Почемуто если раздовать разрешения именно exe-файлам - то они один фиг изменяются и удаляются. Если сначала дать разрешения для папки и вложенных в нее файлов (только чтение), то exe файлы уже модифицировать/удалить нельзя.
Короче говоря цель, чтоб все exe вайлы изменять,удалять было нельзя, а все остальное можно было рдактировать (изменять)
 
Добавил с утра:
 

Цитата:
Как заставить игнорировать подкаталоги?


Цитата:
Убрать ключ /s

мне нужно чтобы файлы в подкаталогах перечислялись, но не выводилсиь названия самих подкаталогов. Короче говоря мне нужно из обработки скрипта исключить все exe файлы и названия подкаталогов. Т.к. в таком случае с них тоже снимаются права NTFS

Всего записей: 1038 | Зарегистр. 13-04-2006 | Отправлено: 00:08 23-07-2009 | Исправлено: Real Root, 06:15 23-07-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Real Root

Цитата:
Как заставить игнорировать подкаталоги?

Убрать ключ /s

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:13 23-07-2009
Real Root



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
01MDM
Я может быть не совсем правильно выразился, но мне нужно чтобы файлы в подкаталогах перечислялись, но не выводилсиь названия самих подкаталогов. Короче говоря мне нужно из обработки скрипта исключить все exe файлы и названия подкаталогов. Т.к. в таком случае с них тоже снимаются права NTFS

Всего записей: 1038 | Зарегистр. 13-04-2006 | Отправлено: 06:11 23-07-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Real Root
Не будет обрабатывать каталоги, а только файлы.

Код:
 
DIR "D:\111\test\*.*" /B /S /A-D
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:27 23-07-2009
Creativie

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток! Помогите сделать батник, который проверяет параметр реестра
Код:
HKEY_CURRENT_USER\Identities\{набор-букв-и-цифр}\Software\Microsoft\Outlook Express\5.0
Compact Check Count

и если значение параметра больше или равно 100 (десятичное), то изменить его на 1(десятичное)
Заранее благодарен!

Всего записей: 5 | Зарегистр. 24-07-2009 | Отправлено: 19:17 24-07-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Creativie
вот этот фрагмент возращает шестнадцатиричное число,теперь надо написать код который будет переводить из 16ричного в 10тичное и наоборот. если никто не подхватит, завтра сам доделаю

Код:
@echo off
for /f "tokens=*" %%a in ('reg query "HKCU\Identities\" ^| find /i "HKEY_CURRENT_USER\Identities\{"') do (
  for /f "tokens=1,2 delims=x" %%b in ('reg query "%%a\Software\Microsoft\Outlook Express\5.0" /v "Compact Check Count" ^| find /i "Compact"') do echo %%c
)

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:14 26-07-2009
Creativie

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R

Цитата:
@echo off  
for /f "tokens=*" %%a in ('reg query "HKCU\Identities\" ^| find /i "HKEY_CURRENT_USER\Identities\{"') do (  
  for /f "tokens=1,2 delims=x" %%b in ('reg query "%%a\Software\Microsoft\Outlook Express\5.0" /v "Compact Check Count" ^| find /i "Compact"') do echo %%c  
)

Спасибо. Никак не получалось обойти {...}.
По поводу шестнадцатеричной системы: переводить не нужно.

Код:
if 4a GTR 4f (echo hi) else (echo no)

прекрасно работает...
Нужно теперь собрать это в кучу...
 
 
 
Добавлено:

Код:
@echo off  
for /f "tokens=*" %%a in ('reg query "HKCU\Identities\" ^| find /i "HKEY_CURRENT_USER\Identities\{"') do ( for /f "tokens=1,2 delims=x" %%b in ('reg query "%%a\Software\Microsoft\Outlook Express\5.0" /v "Compact Check Count" ^| find /i "Compact"') do ( if  %%c GEQ 64 (reg add "%%a\Software\Microsoft\Outlook Express\5.0" /v "Compact Check Count" /t REG_DWORD /d 0) else (exit)))
 

Не работает. %%а теряется где-то.
 
Добавлено:
HaK1R
Спасибо большое. Натолкнул на мысль.

Код:
for /f "tokens=*" %%a in ('reg query "HKCU\Identities\" ^| find /i "HKEY_CURRENT_USER\Identities\{"') do ( for /f "tokens=1,2 delims=x" %%b in ('reg query "%%a\Software\Microsoft\Outlook Express\5.0" /v "Compact Check Count" ^| find /i "Compact"') do ( for /f "tokens=*" %%e in ('reg query "HKCU\Identities\" ^| find /i "HKEY_CURRENT_USER\Identities\{"') do if  %%c GEQ 64 (reg add "%%e\Software\Microsoft\Outlook Express\5.0" /v "Compact Check Count" /t REG_DWORD /d 0 /f) else (pause)))

Вот что нужно было.

Всего записей: 5 | Зарегистр. 24-07-2009 | Отправлено: 09:27 27-07-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
 
У меня есть маленький вопросик.
Как прочитать имя пользователя (Это в свойствах
"Мой компьютер" Свойства системы)
Ниже написанный код возвращает только
Имя компьютера, и Имя пользователя вошедшего
в систему.
 
Код
chcp 1251>nul
set "C=%ComputerName%"
set "U=%UserName%"
 
echo ComputerName=%C% > res.txt
echo Name=%U% >> res.txt
 
 
Может кто-нибудь подскажет искомую
переменную?  
Ну очень уж надо.
 
Спс.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 14:19 27-07-2009 | Исправлено: Cosmogor, 14:22 27-07-2009
Creativie

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cosmogor
reg query в помощь

Код:
rem Организация
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"  /v "RegisteredOrganization"
rem Имя пользователя
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"  /v "RegisteredOwner"

покрути, может что-то и выйдет.

Всего записей: 5 | Зарегистр. 24-07-2009 | Отправлено: 16:34 27-07-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Creativie
 
Спасибо подтолкнул к мысли.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 17:28 27-07-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Creativie

Код:
 
echo %username%
echo %userdomain%

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 22:01 27-07-2009
nikitosianmst

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята,я тут почитал пару страниц...не нашел нужного.........
нужно создать bat файл,для резрвного копирования файлов...  
Только нужно чтоб копировалась и структура папок, а не только файлы....

Всего записей: 1 | Зарегистр. 27-07-2009 | Отправлено: 00:50 28-07-2009
Maza_Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
nikitosianmst

Код:
 

XCOPY /?

 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:39 28-07-2009
Creativie

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nikitosianmst

Код:
xcopy C:\откуда С:\куда

 
или
 

Код:
@echo off
cd \
c:
cd Где-файлы-для-бекапа
rem Если установлен WinRAR
rem Создание архива с именем <Текущая дата>.rar
%ProgramFiles%\winrar\winrar.exe a -r -t -ag+DD.MM.YYYY C:\где-архив\.rar
move C:\где-архив\*.rar C:\папка-бекапа\*.rar

Всего записей: 5 | Зарегистр. 24-07-2009 | Отправлено: 09:21 28-07-2009 | Исправлено: Creativie, 09:23 28-07-2009
Upek

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста...
Есть вот такой код:
 
 

Код:
FOR %%a IN (%ba% %ka% %ma% %ga% %ra% %pa% %za%) DO (
  For %%b in (*.cdx *.tmp *.bak *.fix) do (
     del /f /s /q %%a%%b >logdel.txt  
    ECHO %%a%%b)
)

В переменной %ba% храниться путь типа c:\temp\
Но почему то не срабатывает второй цикл, бьюсь головой и не могу никак понять почему...

Всего записей: 22 | Зарегистр. 08-07-2006 | Отправлено: 16:14 28-07-2009 | Исправлено: Upek, 16:16 28-07-2009
Road Runner J



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ммм, а как выполнить скрипт не залогинившись в систему, в скрипте нужно подмапить сетевой диск для бэкапирования.

Всего записей: 181 | Зарегистр. 01-06-2006 | Отправлено: 10:26 29-07-2009
Creativie

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Road Runner J

Цитата:
не залогинившись в систему

В окне приветствия? (ввод имени+пароля)

Всего записей: 5 | Зарегистр. 24-07-2009 | Отправлено: 11:27 29-07-2009
Road Runner J



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну да, пользователь не заходит в систему (правда я ещё пока не знаю надо ли этому пользователю заходить заранее в сиситему чтобы создался профиль). но при этом каким-то чудесным образом файлы должны скопироваться на шару подцепленную заранее, вот я и подумал можеь скриптег как-нибудь можно запустить с учётными данными этого пользователя?

Всего записей: 181 | Зарегистр. 01-06-2006 | Отправлено: 18:49 30-07-2009 | Исправлено: Road Runner J, 18:52 30-07-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru