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

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

Автор: omamont
Дата сообщения: 19.10.2009 08:30
01MDM ещё раз спасибо - всё работает!!!
Автор: newhk
Дата сообщения: 19.10.2009 14:51
народ, помогите плиз
нужно, чтобы при копировании файла, ну скажем qwerty.rar, он сразу переименовывался в qwerty_N.rar, я так понимаю, нужна некая переменная, которая будет смотреть директорию и подставлять следующее значение, может кто помочь?
Автор: bomzzz
Дата сообщения: 19.10.2009 15:06
задача не полно сформулирована
Автор: newhk
Дата сообщения: 19.10.2009 15:22
в общем так.
у меня бэкапиться SQL, складываются локально, потом срабатывает шедулер и переносит его в другое место, но чтобы когда следующий раз сработает шедулер, не перезаписался файл, его надо переименовать, проще всего присвоить ему текущую дату или номер по порядку, но как это сделать с соммандной строке я не знаю, знаю только как в раре сделать
Автор: bomzzz
Дата сообщения: 19.10.2009 15:33
ну то есть у целевого файла всегда одно и тоже имя, он всегда лежит в одной и той же папке, его нужно скопировать в папку копилку изменив имя на имя+дата, и возможно даже стереть в конце

Добавлено:
батник MyBatnik.bat копирует себя добавляя к имени дату

Цитата:

ECHO OFF
COLOR 9F
CLS
set CURRENTDATE=%DATE%
copy MyBatnik.bat MyBatnik-%CURRENTDATE%.bat
Автор: newhk
Дата сообщения: 19.10.2009 15:52
спс, есть только 1 нюанс, можно ли такое проделывать с бэкапом базы данных, там же нет расширения
Автор: bomzzz
Дата сообщения: 19.10.2009 15:55
можно. значит имя будет без расширения
copy MyBatnik.bat ggg-%DATE%

Добавлено:
если в пути будут пробелы кавычки не забудь или используй в досовском формате пути
Автор: newhk
Дата сообщения: 19.10.2009 16:00
спс огромное

Автор: miksanfree
Дата сообщения: 19.10.2009 18:44
Есть ли какая-нибудь консольная программа для установки уровня громкости, записи, а также для работы с микшером и т.д?
Автор: Mosl
Дата сообщения: 20.10.2009 08:29
01MDM
Даже в самой простой задачи может оказаться много подводных камней. Захотел запускать скрипт от имени системы что бы окно cmd не всплывало постоянно перед носом. И оказалось что в соединении запущенном от иени другого пользователя не сохраняется имя пользователя и пароль. Теперь приходиться использовать команду rasdial для запуска vpn. И тут выяснилось что rasdial выполняет только одну попытку подключения. И если она не удачна больше не подключаеться. Нашел утилиту sleep, она повторяет запуск любой команды согласно указаным параметрам.
Подправил скрипт:

Код: @echo off
pushd "%~dp0"

wget -t 1 ya.ru
if not exist index.html (
    :dial
    rasdial "1" 2 3
    sleep 20
    rasdial | find "1"
    if %errorlevel%==1 goto dial
)
2>nul del index.html
Автор: LordTor
Дата сообщения: 21.10.2009 09:21
Привет всем требуется помощь есть файл который может находится в разных директориях его нужно удалить как это можно сделать с помощью батника

Добавлено:
и еще будет просто супер если в указаных директориях он останется
Автор: rain33
Дата сообщения: 21.10.2009 10:42
Доброго времени суток.
Нужен батник, замеряющий скорость сети между клиентом с севером.
Т.е. я беру текущее время, кидаю файл на \\server , снова получаю текущее время, вычитаю. т.к. размер файла изветен - делю и получаю скорость.

И еще один.
Начинаю слать пинг на сервер, ping x.x.x.x -l 50000 -w 1 -n 100 (типа 50000 байт в секунду)
как сделать так, чтобы когда приходит "request timed out", то в файл log.txt об этом писалось
"<date><time> пинг не прошел("
Автор: 01MDM
Дата сообщения: 21.10.2009 13:12
LordTor
Удаляет файл 1.txt из всех подпапок начиная с "Root Folder", за исключением указанных в %excludepath%

Код:
@echo off
setlocal

set excludepath="C:\Path\To\Folder 1\" "C:\Path\To\Folder 2\" "C:\Path\To\Folder 3\"

for /f "tokens=*" %%i in ('dir /b /s "Root Folder\1.txt"') do call:del "%%i"
goto:eof

:del
for %%i in (%excludepath%) do if "%~dp1"==%%i goto:eof
del %1
Автор: Mosl
Дата сообщения: 21.10.2009 17:37
01MDM
а как насчет моего батника - одобряешь? )))
Автор: Nastja_Vetrova
Дата сообщения: 21.10.2009 22:15
Подскажите пожалуйста как решить это:"вывести на экран имена всех скрытых файлов на диске С: размер которых превышает 10КБ". Препод просто дал задание, а как эго делать не объяснил, лекций небыло, мы там все в шоке. Помогите пожалуйста, я не думаю, что он что-то сложное нам бы дал, я почитала те команды, но абсолютно не знаю как с ними быть...Зарание спасибо!
Автор: volodyalipkin
Дата сообщения: 22.10.2009 02:15
Примерно так:

Код: dir /S /b /A:H-D > q && for /F "delims=?" %i IN (q) do if /I %~zi GTR 10240 echo %i && del q
Автор: FranViera
Дата сообщения: 22.10.2009 08:33
Прошу прощения если пишу не в той теме, или повторяюсь...
Возникла проблема с запуском bat-файла из командной строки (windows XP SP2)

Имеется: файл <имя>.bat расположенный на диске С:\
если в командной строке (cmd) набрать

start C:\<имя>.bat

файл не запускается, пишет - "отказано в доступе"
если же просто C:\<имя>.bat (без команды start) - то запускается....

после чего началась эта проблема сказать затрудняюсь, недели две назад все было нормально, только сегодня обнаружил.

пользователь - локальный админ, права на диск С и файл - полный доступ.
проверка NOD32 на вирусы отрицательная, "левых" процессов не имеется....

(необходимо использовать именно команду start с ключом /min для запуска bat-файла свернутым: start /min C:\<имя>.bat)
Автор: spaulding2005
Дата сообщения: 23.10.2009 11:18
Ребята день добрый помогите в написании скрипта.

Требуется каждые минут 5(запускаться будет сторонним шедулером) копирование определённых типов файлов из одной папки в другую.без всяких вопросов подтверждений итд.

к примеру из папки c:\Documents and Settings\888\Local Settings\Temp\ чтобы копировались файлы с расширениями doc rar итд в папку на диске c:\files

заранее спасибо
Автор: 01MDM
Дата сообщения: 23.10.2009 12:36
spaulding2005

Код:
@echo off
for %%i in (doc rar) do (
copy "c:\Documents and Settings\888\Local Settings\Temp\*.%%i" "C:\files"
)
Автор: spaulding2005
Дата сообщения: 23.10.2009 13:52
01MDM
у меня в именно моём случае с диска D будет копироваться но имя пользователя у меня на русском языке первой папки:

D:\Documents and Settings\вася\Рабочий стол

и пишет при выполнении что: Системе не удаётся найти указанный путь.
Автор: 01MDM
Дата сообщения: 23.10.2009 14:01
spaulding2005
Поставь:

Код:
@echo off
chcp 1251 1>nul
...
Автор: Solotoy
Дата сообщения: 23.10.2009 15:40
всем привет !!!
нужен бат
который должен выполнять функцию "горячих клавиш"
например :
команда "STRG + C" или "STRG +F4" ,или любая другая,но чтобы я мог вписывать их сам...

то есть запустил :STRG-xxx.bat ,а он виртуально нажал комбинацию клавиш,желательно
в том окне которое в этот момент на переднем плане..,очень нужно спасибо...
Автор: 01MDM
Дата сообщения: 23.10.2009 16:36
Solotoy
Не думаю, что это функционально, при нажатии на батник, актиное окно теряет фокус, поэтому с 3-х секундной паузой:

Код:
:: CTRL-F.cmd
@echo off
setlocal

for /f "tokens=1,2 delims=-" %%i in ("%~n0") do (
    set "key1=%%i"
    set "key2=%%j"
)

nircmdc wait 3000
nircmdc sendkey %key1% down
nircmdc sendkey %key2% press
nircmdc sendkey %key1% up
Автор: BorlandIMHO
Дата сообщения: 23.10.2009 16:57

Цитата:
Начинаю слать пинг на сервер, ping x.x.x.x -l 50000 -w 1 -n 100 (типа 50000 байт в секунду)
как сделать так, чтобы когда приходит "request timed out", то в файл log.txt об этом писалось
"<date><time> пинг не прошел("

Решал сходную задачу:
Packet_Loss_Catcher.cmd
Код: REM Адрес пингуемого узла
SET PINGADDR=192.168.1.1

REM Размер пакета для пинга
SET PACKETSIZE=32

REM Количество пакетов
SET ITERATIONS=86400

REM Временной промежуток между пакетами в секундах +1, т.е. для промежутка в 1 секунду д.б. 2
SET ITERLENGTH=2





echo Pinging %PINGADDR% by %PACKETSIZE%-bytes packets>Packet_Loss_Catcher%PACKETSIZE%.log
echo Started at %DATE% %TIME%.>>Packet_Loss_Catcher%PACKETSIZE%.log
echo.>>Packet_Loss_Catcher%PACKETSIZE%.log
for /l %%I in (1,1,%ITERATIONS%) do (
ping -n 1 -l %PACKETSIZE% %PINGADDR%
IF ERRORLEVEL 1 CALL :TIMER
ping -n %ITERLENGTH% 127.0.0.1>nul
)
echo.>>Packet_Loss_Catcher%PACKETSIZE%.log
CALL :FINISHER
rar m -m5 -md64 -- PLC%PACKETSIZE%_LOG_%DATE:~9,4%%DATE:~6,2%%DATE:~3,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% Packet_Loss_Catcher%PACKETSIZE%.log
START %~nx0
exit

:TIMER
echo Packet loss at: %DATE% %TIME:~0,8%>>Packet_Loss_Catcher%PACKETSIZE%.log
GOTO :EOF

:FINISHER
echo.>>Packet_Loss_Catcher%PACKETSIZE%.log
echo Ended at %DATE% %TIME%.>>Packet_Loss_Catcher%PACKETSIZE%.log
GOTO :EOF
Автор: Mosl
Дата сообщения: 25.10.2009 23:44
01MDM
я так понимаю nircmd позволяет запускать задачи и програмы без отображения любого пользовательского интерфейса.
Немогли бы вы подсказать как написать команду что бы с помощью nircmd запустить bat или cmd файл в скрытом режиме.
Еще вроде для этого можно использовать cmdow.exe но я тоже не асилил как заставить его запускать програму в скрытом режиме.
Автор: omamont
Дата сообщения: 26.10.2009 00:44
Mosl
http://wiki.oszone.net/index.php/Скрываем_консольные_окна

Автор: 01MDM
Дата сообщения: 26.10.2009 11:17
Mosl
Nircmd не справится с консольным окном. Лучше используй hstart.exe

Cmdow не позволяет полностью скрыть окно, при старте окошко на миг выскакивает.
Автор: Mosl
Дата сообщения: 26.10.2009 12:01
01MDM
опробовал Cmdow - максимум чего добился окно мигает и все.
А вот Nircmd отробатывает как надо. Через выполнить запускаю "nircmd.exe execmd C:\ins.cmd" консольное окно не появляеться, команды указаные в ins.cmd (net use X: \\10.10.1.1\distr$$\Default_install "" /user:sp\user1) выполняеться. Может где-то подводные камни?
а для hstart.exe надо писать команду так - hstart /NOCONSOLE "C:\ins.cmd" ?
Автор: rain33
Дата сообщения: 26.10.2009 12:06
BorlandIMHO cпасибо! В скрипте разобрался. Респект.
Автор: 01MDM
Дата сообщения: 26.10.2009 12:27
Mosl

Цитата:
А вот Nircmd отробатывает как надо.

Действительно, я всегда пользовался nircmdc.exe, а она показывает окно.


Цитата:
а для hstart.exe надо писать команду так - hstart /NOCONSOLE "C:\ins.cmd" ?

Да, так.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


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