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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите с такой проблемой:
Есть 2 файла: 1.lng и 2.lng. Это - тестовые языковые файлы в кодировке ANSI. 1.lng - русский языковой файл от старой версии, строки из которого хочу корректно перенести в англ. языковой файл от новой версии 2.lng.  
 
Пример текста из файла 1.lng:
Подробнее...
 
Этот же текст в файле 2.lng:
Подробнее...
Структура файлов:
 
Секции (то, что заключено в [], например [TMainForm]):
1. Всегда начинаются с новой строки, и написаны без переносов.
2. Символ [ в имени секции всегда первый в строке (так их можно находить в документе).
3. Максимальная длина имени секции (без учета []) = 18
4. После последней строки в секции всегда следует пустая строка.
 
 
Строки (например, TabPages.0=Каталоги):
1. Всегда начинаются с новой строки, и написаны без переносов.
2. Содержат левую и правую часть, между ними символ =
3. Строки в одинаковых секциях двух файлов идентифицируются по левой части, правая часть (после =) выводится текстом в программе.
4. Левые части строк в разных секциях могут совпадать, отсюда необходимость учета секций.
5. Внутри строк также могут встречаться символы [], но они не первые в строке.
 
 
Пакетный файл:
1. Находит в файле 2.lng первую секцию, и ищет в файле 1.lng такую же секцию.
Если успешно - переходим к п.2, если не найдена такая секция в файле 1.lng - переходим к сл. секции в файле 2.lng.
2. Находит в текущей секции файла 2.lng первую строку, и ищет в файле 1.lng в той же секции ту же строку.
Если успешно - из файла 1.lng копируется правая часть строки (после символа =), и этим заменяется правая часть такой же строки в файле 2.lng.
 
Напишите, пожалуйста, файл .cmd чтобы перенести русский текст из файла 1.lng в файл 2.lng.
 
PS. Не все секции и строки из файла 2 существуют в файле 1. Поэтому заменены будут не все строки и не все секции. Пути к файлам не нужны, т.е. файлы 1, 2, и .cmd находятся в одной папке. Система -XP Pro русская.
Если что упустил - допишу.

Всего записей: 117 | Зарегистр. 22-03-2007 | Отправлено: 15:05 22-12-2009 | Исправлено: Deep2007, 15:42 24-12-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В приведённом ниже скрипте
хочу осуществить проверку времени в системе.
Если время между 08:00-00:00, то одно сообщение.
Если время между 00:00-08:00, то другое сообщение.
Но из затеянного ничего не получается,
подскажите в чём я не прав?
Ведь переменная %tm% перечисляет время,
а в if не отображается.
 
 
Код:
for /l %%a in (0,1,8) do if %time:~0,2%/ equ %%a/ set "tm=0%%a"
 
if "time /t"=="%tm%" (GOTO Yes) ELSE (GOTO NO)
EXIT
 
:Yes
Chcp 1251
msg * Время между 08:00-00:00
EXIT
 
:NO
Chcp 1251
msg * Время между 00:00-08:00
EXIT

 
Сп.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 15:07 22-12-2009
dimbat



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В продолжение к теме "Как вызвать консоль из контекстного меню файла". Вот тут она поднималась, но до конца так и не реализована.
Идея вызывать через контекстное меню проводника путь до файла и вставлять его в командную строку для последующего ввода ключей и прочих нужд.
Т.е. известную тему "открыть cmd в текущей папке":  
[HKEY_CLASSES_ROOT\Directory\shell\OpenCommandLine\command]
@="cmd /k cd %1"
переделать для файла.
Если кто добился реализации, буду признателен за обнародование.
Или наводки, готов поэкспериментировать...
Спасибо.

----------
In Search We Trust

Всего записей: 1034 | Зарегистр. 23-08-2003 | Отправлено: 15:28 22-12-2009
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
требуется из текстового файла удалить повторяющиеся строки, как это можно реализовать?

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 15:32 22-12-2009 | Исправлено: newhk, 17:25 22-12-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Deep2007
 
Может это тебе поможет ?

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 15:37 22-12-2009
Deep2007



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

Цитата:
Может это [?] тебе поможет ?

Это по теме, спасибо тебе, Cosmogor, только ума у меня не хватит приспособить это под себя.  
PS. Да и геморно очень писать руками что на что менять - быстрее тогда уже руками все сделать.
 

Всего записей: 117 | Зарегистр. 22-03-2007 | Отправлено: 15:48 22-12-2009 | Исправлено: Deep2007, 18:44 22-12-2009
kermit

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

Цитата:
требуется из текстового файла удалить повторяющиеся строки, как это можно реализовать?  

я делал это с помощью sort и grep из Cygwin
можно еще импортировать в эксель и сделать через сводную таблицу
 
 
Добавлено:
Deep2007

Цитата:
Вроде видел где то на этом форуме, если что - не бейте ногами. Вопрос такой - как (и можно ли) в CMD издать звук через системный динамик?

 
вот еще
вариант ( в конце страницы)
 

Всего записей: 463 | Зарегистр. 01-10-2003 | Отправлено: 15:10 23-12-2009
kalkin5



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
спасибо, атрибуты для папки нужны: архивный, только для чтения
и не нужны: системный, скрытый
а сам созданный файл desktop.ini должен быть скрытый
 
и еще вопрос, не работает такая команда:
nircmd.exe execmd for %%a in ("~$folder.common_programs$\office\utils\*.*") do exit
что нужно исправить?

Всего записей: 189 | Зарегистр. 21-03-2006 | Отправлено: 17:21 23-12-2009
TNR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите навоять небольшой cmd для обновления КонсультантПлюс ...
 
Задача:
1. Найти на разделах файлик cons.exe
2. Запустить распаковку архива с обновлениями в папку где лежит файлик cons.exe
3. После распаковки запустить само обновление Cons.exe  /ADM /RECEIVE /BASE* /YES

Всего записей: 1761 | Зарегистр. 15-03-2004 | Отправлено: 06:31 25-12-2009
klserg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь
Есть файлы формата ???_???_???.??? (11 символов название)
Как стредствами bat вырезать середину названия, тоисть оставить только 4 первых и 4 последних символа

Всего записей: 2 | Зарегистр. 24-12-2009 | Отправлено: 09:37 25-12-2009
mugil_cephalus

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

Код:
setlocal enabledelayedexpansion
for %%i in (путь\???_???_???.???) do set "var=%%i" &set "var=!var:~0,4!!var:~-4!"

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:58 26-12-2009
Deep2007



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

Цитата:
Вот здесь нашел полный справочник по командам CMD cmd команды

 
Автор этого справочника - Гариф Саитов, это -  его сайт . С разрешения автора разместил справочник по CMD (формат .chm, делал я сам), по его информации.
Разместил на депозите, зажат в архив 7z, размер архива - 467 кб.
скачать

Всего записей: 117 | Зарегистр. 22-03-2007 | Отправлено: 17:34 26-12-2009 | Исправлено: Deep2007, 17:34 26-12-2009
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Deep2007
А тот справочник, что сам автор откомпилировал (ссылка на этой странице) чем не нравится?
 
Добавлено:
Качнул и все понял.
"Справочник по параметрам командной строки" v1.1 которым я давно уже пользуюсь был выполнен в виде культурного chm файла с Указателем и закладкой "Избранное".
Новый вариант v1.2 (на него указывает ссылка с сайта) автор откомпилировал в exe, что, на мой взгляд, при внешней красоте, затрудняет его использование. Ну, сравнивайте сами...
Лично мне зачастую удобнее пользоваться встроенной виндовой справкой (в SciTE-Ru она вызывается на любом выделеном слове аж двумя вариантами: Shift+F1 - печатный вариант в консоль или просто F1 - ntcmds.chm (не забывайте что такой чудесный файлик имеется в стандартной ХР).

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 21:42 26-12-2009
Fearless2006

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток. помогите пожалуйста решить такую задачу: "Создать командный файл, который организует отображение на экране содержимого всех указанных файлов текущего каталога, делает запрос на необходимость копирования. В случае положительного ответа копирует эти файлы на дискету"  
вот чего смог добиться своими усилиями  
 
@echo off  
dir  
if exist %1 goto n  
echo file not found %1  
goto end  
:n  
type%1  
xcopy /w A:\  
end

Всего записей: 2 | Зарегистр. 24-12-2009 | Отправлено: 14:45 27-12-2009
klserg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mugil_cephalus
 
 
setlocal enabledelayedexpansion
for %%i in (путь\???_???_???.???) do set "var=%%i" &set "var=!var:~0,4!!var:~-4!"
 
не работает
 
Добавлено:
Точнее
 
setlocal enabledelayedexpansion
 
for %%i in (c:\temp\*.dbf) do set "var=%%i" &set "var=!var:~0,4!!var:~-4!"
 
файлы в каталоге есть, прбелы в конце строки удалил.
Не работает

Всего записей: 2 | Зарегистр. 24-12-2009 | Отправлено: 13:25 28-12-2009
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
setlocal enabledelayedexpansion  
for %%i in (путь\???_???_???.???) do set "var=%%~nxi" &set "var=!var:~0,4!!var:~-4!"

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:44 28-12-2009
Zzzveroboy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Печатаем с сетевой шары на сетевой принтер Kyocera4020 отправляем мульти-tif небольшие файлы сканов по 70-90кб в каждом по 4-5 страниц, получается после нескольких файлов пауза. принтер останавливается, причем не обязательно на новом файле, может 3-4 файла отпечатать без остановки. потом в середине файла после его двух листов остан0овиться и допечатать остальные. Используем программу IrfanViev.  
Подскажите какой создать батник чтоб используя команду  
rundll32.exe shimgvw.dll,ImageView_PrintTo /pt "ПутьКТифу" "\\сервер\Имя принтера"  
можно было печатать много мультитифов, причем мультитифы лежать на сетевом диске A подключенном, в каталоге ABC, в этом каталоге для каждого файла генерируется свои подкаталоги случайного набора букв цифр(типа wpv2_fhvhc34ds). Задача сделать так, чтоб на печать отправились файлы из всех этих каталогов. Подскажите какой код должен быть в этом БАТ файле? Спасибо

Всего записей: 1 | Зарегистр. 28-12-2009 | Отправлено: 14:31 28-12-2009
Dr29BArt



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Магистры командно-консольные прошу помощи вновь.
Необходимо в указанном файле (ввод адреса и имени с клавы) найти все слова с литерой "r" и отсортировать их в порядке спадания. Вот есть:
@echo off
set /p file="Введите адрес, имя и расширение файла: "
if not exist %file% (@echo Такого файла не существует)  
pause

Всего записей: 7 | Зарегистр. 20-09-2009 | Отправлено: 19:06 28-12-2009 | Исправлено: Dr29BArt, 14:06 29-12-2009
webms

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите написать батник для копирование с фтп файлы вместе с папками
 
вот что смог сделать я:
 
d:\windows\system32\ftp -s:C:\Backup\from_mos.ftp
 
from_mos.ftp:
-------------------
open ftp.domen.ru
name
pass
prompt
binary
lcd C:\Backup
cd httpdocs
mget *.*
disconnect
bye
все конектиться вверно, начинает скачку, но только файлы, без папок, папки не качаются...
 
помогите плз, нужно чтоб он скопировал с фтп все что есть в папке httpdocs вместе с папками и подпапками
 
за ранее спасибо

Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 17:25 02-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dr29BArt
попробуй
@echo off  
set /p file="Введите адрес, имя и расширение файла: "  
type %file%|find "r"|sort
if not exist %file% (@echo Такого файла не существует)  
pause
 
Добавлено:
Zzzveroboy
for /r a:\abc %%i in (*.tif) do rundll32 shimgvw.dll,ImageView_PrintTo /pt "%%i" "\\сервер\Имя принтера"
 
Добавлено:
webms
попробуй поискать  инфу в справке - start/run:  
hh ntcmds.chm::/ftp__subcommands.htm

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 18:38 02-01-2010
   

Страницы: 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