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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
ScreamWolf



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

Цитата:
Держи дружище.  

спасибо, то что нада!))
 
А вот вопрос: как заставить батник развернуться на весь экран при запуске?
 
В ярлыке менять свойства запуска - не катит, т.к. запускается напрямую.
Делал раньше при помощи программы Smart Install Maker (по моему так называлась), вот там была функция "Запуск в режимах MIN MAX HIDE" - так же мне не подходит, т к не пользуюсь данным типом ПО

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 07:58 13-08-2009
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ScreamWolf
cmdow — изменение параметров и видимости дос-окна

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:23 13-08-2009
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ScreamWolf
Еще на весь экран делает fstoggle. Не /MAX, а как AltEnter в консольном окне нажать.  
http://barnyard.syr.edu/~vefatica/#FSTOGGLE

Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 11:42 13-08-2009
Cokolok

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


Всего записей: 27 | Зарегистр. 24-05-2009 | Отправлено: 16:51 13-08-2009
7b

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KapralBel
 
cmdow - его установить как та надо? Просто через .exe не устанавливается.
Через cmdow - install тоже не кактит. Но штучка полезная, хотелось бы ее по-юзать.
Подскажите плз, что с ней делать, как ее инсталировать.

Всего записей: 4 | Зарегистр. 11-08-2009 | Отправлено: 08:58 14-08-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
7b
Его вообще не надо устанавливать, просто поместить cmdow.exe в %PATH% или рядом с батником.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:20 14-08-2009
piva_net

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, подскажите, плз., как из командной строки (батника) убить нитку процесса? Все, что нашел - только убийство процесса целиком.
Можно с использованием внешних программ.

Всего записей: 29 | Зарегистр. 04-04-2006 | Отправлено: 13:59 14-08-2009 | Исправлено: piva_net, 15:56 14-08-2009
alekspioner

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто сделать батник, который будет набирать номер по Dial Up и не дожидаясь соединения отключать вызов, требуется для отправки номера на пейджер через телефонную линию используя модем Robotics Courier.

Всего записей: 3 | Зарегистр. 07-10-2008 | Отправлено: 01:07 15-08-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Спасибо, вполне доступное объяснение.
Не то что в справке, в справке вроде по русски  
написано, а не понятно.  
 
 
Добавлено:
Помогите со скриптом.
Написал скрипт проверки диска.
 
Код:
 
for %%i in (d) do (
if exist %%i:\ GOTO YES 2>nul
if not exist %%i:\ GOTO NO 2>nul
)
:YES
msg * YES!
EXIT
:NO
msg * NO!
EXIT

 
Но он реагирует только на жёсткие диски, а
хотелось бы, что-бы реагировал только на CD,DVD диски.
 
Спс.

----------
(Цитата)
Я бы изменил весь мир, но бог не даёт исходников.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 06:17 15-08-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как можно удалить из папки все файлы, за исключением 1.txt и 1.bat ?
 
Пробовал по аттрибутам или предварительно перемещать (что нужно) перед удалением, но это не совсем удобно.
 
Надо удалить не ВСЁ, а всё кроме

Всего записей: 1358 | Зарегистр. 28-10-2007 | Отправлено: 12:28 15-08-2009
01MDM



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

Код:
 
@echo off
setlocal
 
:: Определяем все диски
for /f "tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:1 %%i %%j
goto:eof
 
:: Первый вариант (надежней и не показывает вирт. сд)
:1
set "drive=%1%2"
2>nul wmic cdrom where id="%drive:~-2%" get drive /value | 1>nul findstr = && (
    echo YES! %drive:~-2%
) || (
    echo NO! %drive:~-2%
)
 
:: Второй
:1
set "drive=%1%2"
fsutil fsinfo drivetype %drive:~-2% | 1>nul findstr "[-].*[-]" && (
    echo YES! %drive:~-2%
) || (
    echo NO! %drive:~-2%
)

 

 
Добавлено:
vitrzn

Код:
 
@echo off
for /f "tokens=*" %%i in ('dir /b /a-d C:\test ^| findstr /v "1.txt 1.bat"') do del "C:\test\%%i"
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:39 15-08-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
КАК ОБЫЧНО ВЫ НА ВЫСОТЕ !!!!
СПАСИБО !!!

Всего записей: 1358 | Зарегистр. 28-10-2007 | Отправлено: 15:52 15-08-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Я конечно извиняюсь за надоедливость, но  
у меня не работает 1 вариант, да и 2 тоже.
Всё показывает диск А: NO (хотя А:, и другие диски есть)
И если можно, то растолковать мне значения
('fsutil fsinfo drives ^|
А в особенности строчку
2>nul wmic cdrom where id="%drive:~-2%" get drive /value | 1>nul findstr =
Пожалуйста.

----------
(Цитата)
Я бы изменил весь мир, но бог не даёт исходников.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 16:24 15-08-2009
GhoolVandal



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть какая-то странная проблема.
 
на серваке надо батником вывести в файл некоторое количество кириллического текста  
(в кодировке Windows 1251)
 
Если пишу в консоли руками команду  
chcp 1251 - всё срабатывает
Если использую её в BAT-файле - на ней исполнение BAT-файла ОСТАНАВЛИВАЕТСЯ. Отклика (Текущая кодовая страница: 1251) не получаю.
Но если нажму ctrl+c - исполнение BAT-файла продолжается, и всё работает корректно.
 
А вот теперь любопытный момент - если на том же компе запускаю этот же батник, но  ЗАЙДЯ ПОД ТЕМ ЖЕ ПОЛЬЗЗОВАТЕЛЕМ В СЕАНСЕ ТЕРМИНАЛА (rdp - mstsc) - всё работает!!
 
 
на других компах всё исполняется нормально и без терминала
 
Но на некоторых серваках - вот такая байда.
 
Что можно сделать?
 
 
Добавлено:
 

Всего записей: 252 | Зарегистр. 14-08-2005 | Отправлено: 17:16 15-08-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cosmogor
Проверил на другом компьютере с флопаком. Все работает. Оба варианта. Возможна ошибка из-за концевых пробелов. Если с этим все нормально то, что показывают эти три команды:

Код:
 
fsutil fsinfo drives
fsutil fsinfo drivetype буква:
wmic cdrom where id="буква:" get drive /value
 

Все остальное, это просто обработка этих команд
Так же попробуй:

Код:
 
@echo off
setlocal
 
for /f "tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:1 "%%i" "%%j"
goto:eof
 
:1
set "drive=%~1%~2"
fsutil fsinfo drivetype %drive:~-2%
 

 

Цитата:
(надежней и не показывает вирт. сд)

Здесь ошибка, все зависит от программы-эмулятора

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:28 15-08-2009
ScreamWolf



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Был блок, так что с опазданием, но пишу...
 
igor_andreev

Цитата:
1.
Код:
@echo off
for /l %%a in (1,1,80) do set /p ="."<nul & ping -n 1 localhost>nul 2>&1
В выполняющемся в данный момент батнике отключи вывод всех команд и ошибок на экран и вставляй изредка по тексту set /p ="."<nul  


Цитата:
Отличный пример... тока вот время от чего зависит...
попробовал сменить ping -n <X> где x - как я думал будут секунды, но увы не то...
А еще было бы лучше если использовать скрипт какой нить чтоб виндусовскую строку (как через msiexec) в окошечке отдельном показал)))  

Как например мне установить всю ту же строку из точек, но только так чтобы она от начала до конца длилась например 5 минут (300 сек)? Еще бы лучше было бы если бы был бы ввод времени через переменную в секундах типа set timeout=300
И по поводу
Цитата:
В выполняющемся в данный момент батнике отключи вывод всех команд и ошибок на экран и вставляй изредка по тексту set /p ="."<nul  

не понял...
 
Повторяюсь...
Сам батничек...

Цитата:
проблема в том что IE не реагирует на ENTER/ESC/SPACE, только мышкой клавишу нажать нада...
еще трабла: Окно IE хочеться поставить на передний план, а оно у меня почему-то сзади CMD
и на последок...:: Можно ли запретить в окне IE клавиши управления окном, т е "Свернуть", "Развернуть" и "Закрыть"??? что бы были лишь активными клавиши "Cancel" и "ОК"...  

KapralBel

Цитата:
cmdow — изменение параметров и видимости дос-окна

не катит - палится каспером ((( Утилитку уже узал раньше, пока ее кодик в БД антивирусов не забили, а жаль хороша была...
Цитата:
функция "Запуск в режимах MIN MAX HIDE" - так же мне не подходит, т к не пользуюсь данным типом ПО

я как раз и имел ввиду cmdow. Но нашел маленькое решение...
 
Скриптик на Яве
 
HIDE
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",0);

Standart
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",1);

MIN
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",2);

FullScreen
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",3);

Вот...
 
Добавлено:
Cosmogor

Цитата:
Держи дружище.
http://dvusrachek.ifolder.ru/13501855
 

bat2exec - не принял к компеляции следующую строку типа: if /i %aa%==aa goto aa

че делать?

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 21:35 15-08-2009 | Исправлено: ScreamWolf, 21:38 15-08-2009
romby



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как отличить переменную от папки с таким же названием?
( Например, есть переменная TEMP и папка, которая называется так же - %TEMP% )

Всего записей: 1763 | Зарегистр. 09-02-2006 | Отправлено: 23:02 15-08-2009
Cosmogor



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

Цитата:
что показывают эти три команды:

Вот что показывает:
fsutil fsinfo drives
Диски:   А:\ С:\ D:\ E:\ F:\
 
fsutil fsinfo drivetype буква:
буква:   — Нет  такой  корневой  папки
 
wmic cdrom where id="буква:" get drive /value
Отсутствуют  экземпляры класса.

 

Цитата:
Так же попробуй:  
 
Код:  
@echo off  
setlocal  
   
for /f "tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:1 "%%i" "%%j"  
goto:eof  
   
:1  
set "drive=%~1%~2"  
fsutil fsinfo drivetype %drive:~-2%  

 
А вот это, то что доктор прописал, спасибо

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 23:25 15-08-2009
ewild

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

Цитата:
vitrzn пишет:
А как можно удалить из папки все файлы, за исключением 1.txt и 1.bat ?  
Пробовал по аттрибутам или предварительно перемещать (что нужно) перед удалением, но это не совсем удобно. Надо удалить не ВСЁ, а всё кроме


Цитата:
01MDM пишет:
vitrzn

Код:
@echo off  
for /f "tokens=*" %%i in ('dir /b /a-d C:\test ^| findstr /v "1.txt 1.bat"') do del "C:\test\%%i"

 
Моя созвучная задача:
Удалить ВСЁ великое множество каталогов из "C:\test" КРОМЕ подпапок "C:\test\111" и "C:\test\222\333"
 
Решение в два этапа:

Код:
for /f "tokens=*" %%i in ('dir /b /a:d C:\test\2 ^| findstr /v "333"') do rd /s /q "C:\test\222\%%i"
for /f "tokens=*" %%j in ('dir /b /a:d C:\test ^| findstr /v "111 222"') do rd /s /q "C:\test\%%j"

 
Решение в один этап, не получилось*:

Код:
for /f "tokens=*" %%j in ('dir /b /s /a:d C:\test ^| findstr /v "111 333"') do rd /s /q %%j

* так как команда удалит "C:\test\222" до отфильтровки "C:\test\222\333"
 
Примечание:
dir /b /a:d возвращает имена папок (e.g. "111" "222")
dir /b /s /a:d возвращает полные пути (e.g. "C:\test\111" "C:\test\222" "C:\test\222\333")

 
 
01MDM
Огромное Спасибо! Благодаря Вашему примеру решилась давнишняя мечта поэта! =)

Всего записей: 1087 | Зарегистр. 13-08-2005 | Отправлено: 02:01 16-08-2009 | Исправлено: ewild, 14:36 16-08-2009
01MDM



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

Цитата:
буква:   — Нет  такой  корневой  папки

 
Вообще-то подозревалась буква одного из существующих дисков (c:, d:, e: и т.д). Для проверки.


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:34 16-08-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru