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

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

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

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

   

KLASS



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

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

Всего записей: 11452 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Я сначала тоже так написал (все в for-е)  
Но потом подумал о возможных проблемах с восклицательным знаком в именах файлов и переделал.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 09:30 31-10-2007
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Я не думал. Я думал о том почему вылазит ошибка. О кавычках я забыл напрочь

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:36 31-10-2007
freeminded

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

Цитата:
@echo off  
setlocal  
for %%a in (*.*) do call :renfile "%%a"  
goto :EOF  
:renfile  
set "file=%~1"  
set "file=%file: =_%"  
if not "%file%"=="%~1" ren "%~1" "%file%"

 
этот мне помог (нашел на работе папочку... ), чудесно работает. Еще раз спасибо
 

Всего записей: 14 | Зарегистр. 02-06-2007 | Отправлено: 10:38 31-10-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
freeminded
А если файлов много и они большого размера, то быстрее будет использовать стороннюю утилиту gsar.exe

Код:
 
@echo off
for %%a in (*.*) do gsar -s" " -r"_" -o "%%a"
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:50 31-10-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
А при чем тут размер?
 
Добавлено:
А... ты неправильно вопрос понял. Речь шла о именах файлов, а не о содержимом.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 10:53 31-10-2007
soulthiefer

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите плз как в батнике сделать бесконечный цикл ?

Всего записей: 40 | Зарегистр. 11-07-2006 | Отправлено: 11:27 31-10-2007
Elroir



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

Код:
 
:loop
echo Endless loop
goto loop
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:34 31-10-2007
Tipulatoid



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
soulthiefer
или еще
Код:
@echo off
for /l %%a in (0,0,1) do (
   echo Бесконечный цикл
)
 

Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 12:58 31-10-2007
freeminded

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а реально ли в цикле не только добавить _ а еще и сократить имя?
 
 

Цитата:
(01) [Berliner Philharmoniker - Karl Böhm] Sinfonie Nr. 26 in Es-Dur, KV 184 - I. Molto presto.ape

до
 
(01)_Sinfonie_Nr._26_in_Es-Dur,_KV_184_-_I._Molto_presto.ape

Всего записей: 14 | Зарегистр. 02-06-2007 | Отправлено: 13:58 31-10-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
freeminded
По каким правилам сокращение?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:09 31-10-2007
freeminded

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
убирать то что в квадратных скобках.
 
Добавлено:
главная задача - пробелы. не должно быть ниодного пробела.
 
в имени каждого файла есть общее [Berliner Philharmoniker - Karl Bm], - и это лишнее.

Всего записей: 14 | Зарегистр. 02-06-2007 | Отправлено: 15:20 31-10-2007
apexxx



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

Код:
@ECHO off
ECHO %DATE:~-10% %TIME%" >> c:\tmp\linev.log
apcaccess | findstr /B "LINEV" >> c:\tmp\linev.log

 
содержание linev.log получается таким:
31.10.2007 15:27:00,96  
LINEV    : 216.0 Volts
31.10.2007 15:28:00,40  
LINEV    : 216.0 Volts
31.10.2007 15:29:00,78  
LINEV    : 216.0 Volts
 
А мне хочется следующего:
31.10.2007 15:27:00,96 LINEV    : 216.0 Volts
31.10.2007 15:28:00,40 LINEV    : 216.0 Volts
31.10.2007 15:29:00,78 LINEV    : 216.0 Volts
 
помогите пожалуйста...
 

Всего записей: 20 | Зарегистр. 31-05-2006 | Отправлено: 17:27 31-10-2007 | Исправлено: apexxx, 17:30 31-10-2007
igor_andreev

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

Код:

type old.txt| sed "N;s/\n/ /">new.txt

да и в топике "Задачи на bat-файлах" есть в шапке "Альтернативные решения" - альтернатива команде ECHO

Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 18:43 31-10-2007 | Исправлено: igor_andreev, 18:52 31-10-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apexxx
Способ igor_andreev-а подходит, если файл уже создан.
А чтобы сразу записывалось в одну строку (без сторонних утилит), можно так:

Код:
 
@echo off
set /p=%DATE:~-10% %TIME% <nul>>"c:\tmp\linev.log"
apcaccess | findstr /B "LINEV" >> "c:\tmp\linev.log"
 



----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:20 31-10-2007
apexxx



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большое спасибо всем ответившим
 
1----------------------------------------------------------------
прочитал вот это: http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=1060#11
 
сделал файлик с названием QCHO.COM и таким содержимым:

Код:
@ECHO OFF
> #.SCR ECHO N QCHO.COM
>>#.SCR ECHO E 0100 BB 80 00 43 80 3F 0D 75 FA C6 07 24 B4 09 BA 82
>>#.SCR ECHO E 0110 00 39 DA 7F 02 CD 21 B4 4C CD 21
>>#.SCR ECHO RCX
>>#.SCR ECHO 001B
>>#.SCR ECHO W
>>#.SCR ECHO Q
>>#.SCR ECHO.
DEBUG<#.SCR>NUL
DEL #.SCR

 
Свой батник поправил:

Код:
@echo off
QCHO %DATE:~-10% %TIME% >> "c:\tmp\linev.log"
apcaccess | findstr /B "LINEV" >> "c:\tmp\linev.log"

 
Когда запускаю ругается вот так:
 

Код:
Всплывающее окно приложения: 16-разрядная подсистема MS-DOS : C:\WINNT\system32\cmd.exe
Процессор NTVDM обнаружил недопустимую инструкцию.
CS:e8c3 IP:5af7 OP:ff ff ff ff ff Для завершения работы приложения нажмите кнопку ''Закрыть''.
 

 
что я не так сделал?
 
2-------------------------------------------------------------------
Скачал SED отсюда: http://gnuwin32.sourceforge.net
с ним тоже не все гладко. Вызываю его ман в консоли - все кракозябрами,
на вот такую строку (apcaccess | findstr /B "LINEV") | sed 'N;s/\n/ /' >> "c:\tmp\linev.log" в батнике тоже ругается кракозябрами
 
3-------------------------------------------------------------------
А можно ли вывод этого выражения
Код:
apcaccess | findstr /B "LINEV"
присвоить какой-нибудь переменной?

Всего записей: 20 | Зарегистр. 31-05-2006 | Отправлено: 10:53 01-11-2007 | Исправлено: apexxx, 10:58 01-11-2007
aChikatillo

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть батник(net use  \\1c-base 1 /user:user),поставил его в автозагрузку, проблема в том что при загрузке он запускается но подключение к ресурсу не происходит(видимо из-за того он сразу стартует а  сетевые сервисы еще не успели запуститься).
Помогите как решить данную проблему. Может быть есть какие-то команды которые делаю задержку перед выполнением...

Всего записей: 245 | Зарегистр. 18-10-2007 | Отправлено: 13:41 01-11-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aChikatillo
1. for /l %%a in (1,1,1000) Do Echo %%a >Nul
2. Подключи в ручную с флажком запоминать при перезагрузке

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:45 01-11-2007
aChikatillo

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

Цитата:
KapralBel

Вообщем помогло когда поставил вместо 1000 - 20000
Как бы терь скрыть это от глаз юзера, а то у него паника начнется ?
Может эт как нить мона зделать без цикла, а то на разных процессорах , время будет по разному...?

Всего записей: 245 | Зарегистр. 18-10-2007 | Отправлено: 14:32 01-11-2007 | Исправлено: aChikatillo, 14:35 01-11-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aChikatillo
1. Windows 2003 - waitfor /?
2. cmdow — изменение параметров и видимости дос-окна

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:50 01-11-2007
Elroir



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

Цитата:
а реально ли в цикле не только добавить _ а еще и сократить имя?

Реально:

Код:
 
@echo off  
setlocal  
for %%a in (*.*) do call :renfile "%%a"  
goto :EOF  
:renfile
for /f "tokens=1,2* delims=[]" %%b in (%1) do set "file=%%b%%d"
set "file=%file:  = %"
set "file=%file: =_%"  
if not "%file%"=="%~1" ren "%~1" "%file%"
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:10 01-11-2007
   

Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru