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

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

Автор: othy
Дата сообщения: 11.12.2009 13:51
Подскажите... очень нужно.
Win 2003 R2 standart SP2 Ru
Почему может подвисать chcp 1251 или 866
При прерывании команды по Ctrl+C видно что переключение отрабатывает.
В инете пока не нашёл ответ...
Автор: 01MDM
Дата сообщения: 11.12.2009 20:54
Eggorka

Код:
@echo off
setlocal

for /f "tokens=*" %%i in ('dir /b /a "d:\in"') do call:copy "%%i"
goto:eof

:copy
set "file=%~n1"
:check
if exist "d:\out\%file%%~x1" set "file=%file%1" && goto:check

copy "d:\in\%~n1%~x1" "d:\out\%file%%~x1"
Автор: seregaknorrr1
Дата сообщения: 12.12.2009 01:00

Цитата:
Подскажите, как сделать паузу между откл. и подключением, например в 5сек
@echo off
rasdial.exe "internet" /disconnect
nircmdc.exe wait 15000
:Connect
rasdial.exe "internet" "Логин" "пароль"
rasdial.exe | find.exe /i "internet"
if %errorlevel%==1 (nircmdc.exe wait 5000 & goto Connect)


Можешь воспользоваться командой sleep 5 из пакета Windows Server 2003 Resource Kit Tools
Автор: btester
Дата сообщения: 12.12.2009 18:47
Здравствуйте.
BAT-ник должен выполнять следующие действия: Сравнивать два текстовых файла с именами report.txt и tmp.txt; если файлы различаются нужно добавить содержимое tmp.txt в файл archive.txt и делать tmp.txt таким же как report.txt; если файлы срвпадают, то ничего не делать...

Вся проблема со сравнением содержимого файлов. Перепробовал кучу вариантов - ничего не получается.
Буду признателен за помощь
Автор: wolf0425
Дата сообщения: 12.12.2009 19:57
btester
Код: fc report.txt tmp.txt || copy archive.txt+tmp.txt & copy report.txt tmp.txt
Автор: Eggorka
Дата сообщения: 13.12.2009 08:54
01MDM
Огромное спасибо! Работает.
Кстати, если вопрос возникает так часто, то может, в FAQ его? Поиском, конечно, пользовался (и не только на Ru.Board'е), потратил не один день, но то ли грамотно сформулировать вопрос не получилось, то ли ещё что... В общем, ещё раз спасибо.
Автор: milair
Дата сообщения: 13.12.2009 11:34
гуру! наведите на мысль как это реализовать: есть у програмки ini-файлик, который изменяется в течении суток, произвольное кол-во раз. вопрос- можно ли написать батничек, который бы допустим через шедулер запускался бы к примеру раз в 10 минут,смотрел за датой изменения ini-файла, и если c момента последнего запуска, этот файл изменился, то выполнять команду перезапуска проги?
Автор: amnon10
Дата сообщения: 13.12.2009 12:40
Привет уважаемые гуру
Помогите..

if exist %SORC%\temp\%DIR%\*.* (echo Est' fayli) else (Echo Netu Filov)

Как я не извращался в результате всегда Est' fayli хотя их там нет.
Автор: NeKit1000
Дата сообщения: 14.12.2009 00:41
Имею команду:

Код: for %i in (*.sfd) do mplayer %i -dumpaudio -dumpfile %i.adx
Автор: BorlandIMHO
Дата сообщения: 14.12.2009 00:52

Цитата:
вычесть из %i расширение .sfd?

Вместо %i.adx использовать %~ni.adx
Автор: NeKit1000
Дата сообщения: 14.12.2009 00:58
BorlandIMHO, спасибо, получилось. Можно только попросить объяснить что это значит и как работает?
Автор: BorlandIMHO
Дата сообщения: 14.12.2009 01:15
NeKit1000
for /? |more +115

Код: Операции подстановки ссылок на переменные команды FOR также расширены.
Допускается применение следующих синтаксических конструкций:

%~I - из переменной %I удаляются обрамляющие кавычки (")
%~fI - переменная %I расширяется до полного имени файла
%~dI - из переменной %I выделяется только имя диска
%~pI - из переменной %I выделяется только путь к файлу
%~nI - из переменной %I выделяется только имя файла
%~xI - из переменной %I выделяется расширение имени файла
%~sI - полученный путь содержит только короткие имена
%~aI - переменная %I расширяется до атрибутов файла
%~tI - переменная %I расширяется до даты /времени файла
%~zI - переменная %I расширяется до размера файла
%~$PATH:I - проводится поиск по каталогам, заданным в переменной
среды PATH, и переменная %I заменяется на полное
имя первого найденного файла. Если переменная PATH
не определена или в результате поиска не найден ни
ни один файл, то этот модификатор заменяется на пустую
строку
Автор: BVV63
Дата сообщения: 14.12.2009 04:31
BorlandIMHO

Цитата:
for /? |more +115

Что в данном случае выполняет "+115"? С ним, действительно, команда "for /?" отрабатывает иначе, нежели без него (сразу кидает на приведённый фрагмент). Никогда не слышал о подобных аргументах, может кто-нибудь пояснить?
Автор: Andrey128
Дата сообщения: 14.12.2009 07:20
Как открыть свойства файла из командной строки?
Автор: BVV63
Дата сообщения: 14.12.2009 08:39

Цитата:
Что в данном случае выполняет "+115"?

Узнал это, выполнив "more /?" . Вопрос снят.
Автор: duh_S
Дата сообщения: 14.12.2009 09:24
подскажите пожалйуста как в батнике при его запуске сделать проверку на наличие запущенного процесса и если он есть то завершить выполнение а при отсутствии выполнить действие
Автор: yurkesha
Дата сообщения: 14.12.2009 10:15
duh_S
Код: tasklist|find /i "myprocess.exe"||(ECHO Не запущен)
Автор: mugil_cephalus
Дата сообщения: 14.12.2009 13:17
duh_S
taskkill /F /IM myprocess.exe||действие
Автор: SANIOK_AV
Дата сообщения: 14.12.2009 14:11
mugil_cephalus

Цитата:
я тут наткнулся (помимо рекомендованного мною решения на autoIt) на команду из vbs/wsh - WshShell.SendKeys

Спасибо большое!!!
Автор: king_stiven
Дата сообщения: 15.12.2009 10:50
кто знает утилиту для комстроки кроме nerocmd для записи оптического диска в виде
утилита.exe запись "1файл" ... "12файл"
то есть чтоб более одного файла записывало, которая целиком каталог пишет или через создание образа не годятся.
Автор: levn
Дата сообщения: 15.12.2009 11:02
Всем привет! Помогите, пожалуйста, разобраться с проблемой.
Некий bat файл находится в папке, например, в
D:\Work\bat\
и тут же находится файл отчета Report.log.
В батнике вывод в этот файл отчета определен как:
>>Report.log
Если запустить этот батник вручную с этой 'bat' дирректории, то вывод в файл отчета записывается все как надо.
Но у меня запуск этого батника реализовано через Html-страницу, которая находится в родительской дирректории:
D:\Work\Page.html
В результате запуска этого батника со страницы (href=bat\start.bat) он отрабатывает все правильно, но запись в Report.log происходит не в нужную дирректорию, а создается еще один Report.log на рабочем столе.
Если в батнике вывод в файл отчета определить статически:
>>D:\Temp\1\Report.log,
то при любом запуске этого батника отчет записывается все как нужно и куда нужно.

Подскажите как можно правильно организовать вывод в log-файл, не привязываясь к статическому пути. Это нужно для того, что дирректория Work вместе со стартовой html страницей, батником и файлом отчета могут периодически перемещаться в другие каталоги, а каждый раз менять пути к Report.log порой не бывает возможности.

Добавлено:
Поправка: вместо:
>>D:\Temp\1\Report.log
имеется в виду:
>>D:\Work\bat\Report.log
Автор: yurkesha
Дата сообщения: 15.12.2009 11:18
levn
Поставь в начале батника
Код: CD /D "%~dp0"
Автор: levn
Дата сообщения: 15.12.2009 12:03
yurkesha
Спасибо, CD /D "%~dp0" в начале батника, помогло.
С перенаправлением, не получилось
Автор: mugil_cephalus
Дата сообщения: 15.12.2009 12:08
можно ли как-то сделать title'om в заголовок окна пустую строку (ну или пробел хотя бы) по аналогии с echo.
Автор: yurkesha
Дата сообщения: 15.12.2009 12:10
levn
Цитата:
С перенаправлением, не получилось
очень странно... Дело в том что эта строка при выполнении заменяется на.... вобщем выполни из батника
Код: ECHO "%~dp0Report.log"
ECHO "%~dp0"
Автор: levn
Дата сообщения: 15.12.2009 12:30
yurkesha
Спасибо, тоже помогло. Я ошибся в прошлый раз.
Т.е. сейчас оба варианта: CD /D "%~dp0" и %~dp0Report.log - работают
Автор: mouser
Дата сообщения: 16.12.2009 10:44
есть ключ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage

в нём строка
1250

нужно прочитать значение строки и передать как переменная в батнике
Автор: BVV63
Дата сообщения: 16.12.2009 11:04
mouser
А какая операционка? Через "Reg Query" сделать нетрудно, недавно составлял подобные коды, составлю и этот, но для конкретной ОС. "Reg Query" для XP и для 2k3 возвращает ответ в разных форматах.
Можно, конечно, ещё и проверку версии сделать... Но если Винда одна - нафига лишнее делать.
Автор: mouser
Дата сообщения: 16.12.2009 11:27
BVV63
думал что можно сделать через regedit.exe
Автор: BVV63
Дата сообщения: 16.12.2009 11:33
mouser

Цитата:
думал что можно сделать через regedit.exe

Насколько знаю, нет. Им можно импортировать из командной строки в реестр reg-файл, а вот вытянуть из реестра... по крайней мере, я не знаю таких способов.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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