Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd) 2

Автор: Solotoy
Дата сообщения: 25.01.2008 13:35
привет,
нужно два батника на ICQ 6:
один чтоб при запуске бат файла переводил ICQ статус в "отсаиденён"
а второй чтоб при запуске бат файла переводил ICQ статус в "в сети"
огромное спасибо ...
Автор: uZver
Дата сообщения: 25.01.2008 21:23
Solotoy
имхо {} ICQ не поддерживает работу с командной строкой (нет там параметров)
можно наверное через удалить/запустить задачу - тогда поиск по слову taskkill поможет.
Автор: Solotoy
Дата сообщения: 25.01.2008 22:03
спасибо ...
незнал простите за оффтоп.
Автор: LDAP
Дата сообщения: 26.01.2008 17:28
Существует ли универсальная комманда вывода даты. Она должна уметь выводить дату в лог как в Вин ХР так и в Вин МЕ?
Какой синтаксис?
Автор: Elroir
Дата сообщения: 27.01.2008 00:16
LDAP

Цитата:
Существует ли универсальная комманда вывода даты. Она должна уметь выводить дату в лог как в Вин ХР так и в Вин МЕ?
Какой синтаксис?

Попробуй так:

Код:
ver | find "XP">nul && date /t || date>>log.txt
Автор: LDAP
Дата сообщения: 27.01.2008 14:17
С Win XP получилось. А вот Миллениум, впринципе выводит дату в лог, но помимо даты выводит абра-кадабру:

Код:
’ҐЄгй п ¤ в : ‚б, 27.01.2008
‚ўҐ¤ЁвҐ -®ўго ¤ вг (¤¤-¬¬-ЈЈ): ’ҐЄгй п ¤ в : ‚б, 27.01.2008
‚ўҐ¤ЁвҐ -®ўго ¤ вг (¤¤-¬¬-ЈЈ):
Автор: 01MDM
Дата сообщения: 27.01.2008 15:57
LDAP
Вот такое старое dos-решение. Проверил только на XP. Главное что бы prompt поддерживал поля $T и $D

Код:
@echo off
:: эта часть для Win Me

echo @prompt set curDate$Q$D>tmp1.bat
command /c tmp1.bat>tmp2.bat

echo @prompt set curTime$Q$T>tmp1.bat
command /c tmp1.bat>>tmp2.bat
call tmp2.bat

echo %curDate%
echo %curTime%

del tmp1.bat tmp2.bat
Автор: Rembo1stBlood
Дата сообщения: 27.01.2008 20:58
парни я как грится нубяра или как там хз ноооо

есть файл конфига R.cfg ето конфиг настроек АДСЛ модема
хочу замутить батник каторый пинганет модем ,откроет фтп на 192.168.1.1 введ логин root
в следущей строке пароль 1234
патом put rom-0 C:\r.cfg

мазгов тхватило тока на

@Echo OFF
ping 192.168.1.1 -n 2
ftp.exe 192.168.1.1
"а вот как тут организовать ввод логина
пароля
хз"
pause
Автор: 01MDM
Дата сообщения: 27.01.2008 21:34
Rembo1stBlood
Составь файл, например ftp.txt, для подключения c необходимыми тебе ftp-командами и запускай

Код:
ftp -s:ftp.txt 192.168.1.1
Автор: LDAP
Дата сообщения: 28.01.2008 13:25
01MDM
Спасибо.
Теперь назрел вопрос о batниках на Вин ХР.
Суть - наваял скрипт, дело его оч. простое, он должен копировать файлы по маске из одной директории в другую. Естестно хочеццо лог вести, чтобы все как у людей. Т.е. комманда xcopy отрабатывает, в случаи успеха пишет в лог успех, в случаи неудачи пишет ошибку. Но вот есть проблемка - если я задаю коп. по маске *.sys и он не копирует ни одного файла, то в Errorlevel все равно выдает код 0(успех).
Пример:

Код:
@echo off
echo ################################ >> log.txt
echo Дата и время запуска: >> log.txt
date /t >> log.txt && time /t >> log.txt
echo ################################ >> log.txt
echo ---WSS--- >> log.txt
xcopy D:\Program-Files-for-library\Irbis64New\IRBIS64\Datai\DNEPR\*.wss C:\test\ /Y /R /H
IF ERRORLEVEL==1 Echo Ошибка!!! >> log.txt
IF ERRORLEVEL==0 Echo Файлы ".wss" скопированы успешно >>log.txt
echo ---SYS--- >> log.txt
xcopy D:\Program-Files-for-library\Irbis64New\IRBIS64\Datai\DNEPR\*.sys C:\test2\ /Y /R /H
IF NOT ERRORLEVEL 1 GOTO norm
echo file not found
:norm
Echo Файлы ".sys" скопированы успешно >>log.txt
Exit
Автор: 01MDM
Дата сообщения: 28.01.2008 17:08
LDAP
Ну если xcopy не возвращает 1 в случае с маской файлов то попробуй через dir. Если файлы для копирования есть, то xcopy их скопирует, имхо, в любом случае если есть куда копировать.

Код:
@echo off
xcopy test\*.jpg test1\ /Y /R /H 1>nul 2>&1
dir /b test\*.jpg 1>nul 2>&1
if %errorlevel%==1 echo Error
if %errorlevel%==0 echo Good Job

или
dir /b test\*.jpg 1>nul 2>&1 && echo Good Job || echo Error
Автор: XXXXL
Дата сообщения: 30.01.2008 22:09
Здравствуйте.
есть файл .ini , нужно чтобы при запуске бат файла он менял нужную мне строку на ту которой я хочу заменить.
пример:
.ini
;Separators
2053=0,323,6,2,24
2054=0,499,6,2,24
2055=0,7,36,609,2
2056=0,185,42,2,77
2057=0,370,42,2,77
2058=0,418,54,2,24
2059=0,499,54,2,24

после запуска бат файла строка "2056=0,185,42,2,77" меняется на "0000=0,000,00,0,00"

получаем:
2053=0,323,6,2,24
2054=0,499,6,2,24
2055=0,7,36,609,2
0000=0,000,00,0,00
2057=0,370,42,2,77
2058=0,418,54,2,24
2059=0,499,54,2,24

главное никак зарание не редактировать файл .ini к примеру выделять нужную строку %% или !!
Автор: 01MDM
Дата сообщения: 31.01.2008 08:43
XXXXL
Два варианта

Код:
:: Первый - теряется коментарий (строка "; Settings")
@echo off
for /f %%i in (test.ini) do (
    if not "%%i"=="2056=0,185,42,2,77" (
        echo %%i 1>>test.tmp
    ) else (
        echo 0000=0,000,00,0,00 1>>test.tmp
    )
)
move test.tmp test.ini

:: Второй - утилита gsar.exe - ничего не теряется
gsar -s2056=0,185,42,2,77 -r0000=0,000,00,0,00 -o test.ini
Автор: LDAP
Дата сообщения: 31.01.2008 10:37
01MDM
Да, я понимаю что с такими опциями XCOPY в любом случаи скопирует файлы, если есть куда копировать, и есть что копировать. Но, знаете, по традиции, или для успокоения души, или для того чтобы создавалась иллюзия что все под контролем, хочеццо чтобы велся лог.
В соседней ветке, в Операционных системах мне подсказали реально работающий для ведения лога скрипт.
Его содержимое:

Код:
for %%x in ("E:\TEMP_RA\IRBIS\DATAI\IBIS\*.cnt") do (
xcopy "%%x" C:\test\WebIRBIS3.3\irbis\ibis\ /Y /R /H
if ERRORLEVEL 1 (
Комманда копирования файла "%%x1" вернула код ошибки!!! >> log.txt
) else (
Echo Файл "%%x" скопирован успешно >>log.txt
)
set proverka=yes
)
if not defined proverka Echo Скрипт копирования вернул код ошибки "Файлы для копирования не найдены" >> log.txt
set proverka=
Автор: 01MDM
Дата сообщения: 31.01.2008 11:14
LDAP
Да, я видел код king_stiven'a. Но раз уж ты решил продублировать свой вопрос и в этой ветке, я и написал как альтернативу решения.
Автор: sscfree
Дата сообщения: 31.01.2008 11:30
Привет, ALL

Код:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
for /r %%i in (*.exe) do (
set dd=%%~ti
set dd=!%dd:~0,2%!
echo %%~ti
echo %dd%
)
ENDLOCAL
Автор: 01MDM
Дата сообщения: 31.01.2008 11:38
sscfree

Код:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for /r %%i in (*.exe) do (
set dd=%%~ti
set dd=!dd:~0,2!
echo %%~ti
echo !dd!
)
ENDLOCAL
Автор: sscfree
Дата сообщения: 31.01.2008 12:11
[/b]2 01MDM[/b]

Код: SETLOCAL ENABLEDELAYEDEXPANSION
Автор: XXXXL
Дата сообщения: 31.01.2008 19:27
01MDM, спасибо!
Автор: tantra1985
Дата сообщения: 01.02.2008 03:50
Нужно, чтобы батник выводил в окне меню типа:
1 - сделать ...
2 - сделать ...
3 - сделать ... и т.д.

пользователь вводит нужную цифру и выполняется нужное действие.

Делал так:


set /p param=введите вариант действия :
if %param%==1: goto :metka1
if "%param%"==2: goto :metka2

но почему-то не прокатывает как нужно провести сравнение, чтобы заработало?



Автор: Elroir
Дата сообщения: 01.02.2008 04:07
tantra1985

Цитата:
как нужно провести сравнение, чтобы заработало?


Код:
echo off
echo 1 - сделать...
echo 2 - сделать...
echo 3 - сделать...
set /p "param=введите вариант действия : "
goto metka%param%
:metka1
...
goto :EOF
:metka2
...
goto :EOF
:metka3
...
Автор: XXXXL
Дата сообщения: 01.02.2008 09:03
после запуска бат файла строка "2056=0,185,42,2,77" меняется на "0000=0,000,00,0,00"

Возникла такая проблема, что у нужной строки есть окончание, которое неизвестно. известно только к примеру: 2056=0,185,42,2,77,199 а выделение красным неизвестно но оно может присутствовать.
Если возможность добавить функцию измены строки даже в этом случае. окончание оставлять не нужно.

P.S Кто не понимает о чём речь, читайте выше.
Автор: 01MDM
Дата сообщения: 01.02.2008 09:49
XXXXL

Цитата:
2056=0,185,42,2,77,199

То есть ",199" может быть или не быть, а поменять надо только поля до него?
Если правильно понял, попробуй вариант

Код:
@echo off
setlocal
set "toChange=2056=0,185,42,2,77"
set "changeTo=0000=0,000,00,0,00"
for /f "tokens=1-6* delims==," %%1 in (test.ini) do (
set "line=%%1=%%2,%%3,%%4,%%5,%%6"
call:parse %%7
)
move test.tmp test.ini
goto:eof

:parse
if "%1"=="" (
if not "%line%"=="%toChange%" (echo %line%>>test.tmp) else (echo %changeTo%>>test.tmp)
) else (
if not "%line%"=="%toChange%" (echo %line%,%1>>test.tmp) else (echo %changeTo%,%1>>test.tmp)
)
Автор: XXXXL
Дата сообщения: 01.02.2008 12:04
01MDM

Втарой вариант это то что нужно. только еть небольшое но. к примеру если сделать
set "toChange=12345"
set "changeTo=54321"
то получем 54321=,,,, а не 12345

мне нужно чтобы была возможность беспрепятственно изменять формат. В основном этот батник нужен ля измены путей в .ини

к примеру есть строка:

Код: item2_actparam=""C:\Program Files\topsite\site.exe"|0|1"
Автор: 01MDM
Дата сообщения: 01.02.2008 13:58
XXXXL
Мой совет, лучше используй gsar.exe (в шапке есть ссылка "Набор GNU-утилит"). Он корректно обрабатывает строки, как целиком, так и их части. С помощью батника достаточно сложно все предусмотреть, да и не предназначен он для парсинга текста. Ошибки могут "выплыть" в самых, казалось-бы, "надежных" местах.

Код:
@echo off
setlocal

set "toChange=12345"
set "changeTo=54321"

gsar -s%toChange% -r%changeTo% -o test.ini
Автор: XXXXL
Дата сообщения: 01.02.2008 14:57
01MDM


Цитата:
You don't have permission to access /UnxUtils.zip on this server.


там не получается скачать.
если есть у кого, залейте пожалуйста.
Автор: 01MDM
Дата сообщения: 01.02.2008 15:39
XXXXL
http://home.online.no/~tjaberg/gsar111.zip
Вот первая попавшаяся рабочая ссылка, гугль рулит

Или весь комплект http://sourceforge.net/project/showfiles.php?group_id=9328
Автор: XXXXL
Дата сообщения: 01.02.2008 15:57
01MDM
Всё равно не получается реализовать ту функцию что я выше описывал.
set "toChange=12345"
set "changeTo=54321"
тут меняет конкретно 12345 на 54321, для этого уже достаточно того что ты уже сделал в начале.
Автор: 01MDM
Дата сообщения: 01.02.2008 16:51
XXXXL
Да чот с gsar'ом у меня тоже не получается
Еще вариант. Ищет нужный параметр, и если находит, перезаписывает всю строку

Код:
@echo off
setlocal

set toChange=item2_actparam=
set changeTo=item2_actparam=""D:\Program Files\123\123.exe"|1|1"

for /f "tokens=*" %%i in (test.ini) do (
echo %%i | findstr %toChange% 1>nul && (
echo %changeTo%>>test.tmp
) || (
echo %%i>>test.tmp
)
)
move test.tmp test.ini
Автор: XXXXL
Дата сообщения: 01.02.2008 20:15
01MDM, громное спасибо! это как раз подошло то что и нужно было!
Спасибо за внимание!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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