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

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

Автор: 01MDM
Дата сообщения: 06.01.2008 19:40
Elroir
Да, это точно 44-50%. И иногда перескакивает если выставить болше 10 сек. Наверно нужно использовать geq вместо ==
Автор: SymA
Дата сообщения: 06.01.2008 21:07
king_stiven спасибо!
утилита nerocmd.exe не работает с DVD ?


как усовершенствовать, чтобы искалось во вложенных папках ?
Код: for %%a in (*.txt) do echo %%a
Автор: king_stiven
Дата сообщения: 06.01.2008 22:06
SymA

утилита nerocmd.exe не работает с DVD ?

КЛЮЧ --dvd


for /f "tokens=*" %%c in ('dir *.txt /b /s /a:-d') do echo %%c
Автор: SymA
Дата сообщения: 06.01.2008 22:32
king_stiven Спасибо !
окрываем "Мой Компьютер"; на C:\ например стоит автозапуск; кликаем по нему и в новом окне открывается прописанный в файле autorun.inf батник
Код: explorer \some_folder\
Автор: Nagual
Дата сообщения: 07.01.2008 04:25
Elroir
ты прав, пофиксено
delay_hybrid+js.cmd
Код: [no]rem ( /*[/no]
@[no]echo[/no] off
[no]chcp[/no] 1251[no]>[/no][no]nul[/no]
title Установка паузы в милисекундах.

[no]:: Команды до паузы[/no]
[no]cls[/no]
[no]set[/no] "ctime1[no]=%time:~0,-3%[/no]"
[no]set[/no] /a "sec1[no]=[/no]36000[no]*%time:~0,1%+[/no]3600[no]*%time:~1,1%+[/no]600[no]*%time:~3,1%+[/no]60[no]*%time:~4,1%+[/no]10[no]*%time:~6,1%+%time:~7,1%[/no]"
[no]echo[/no] Сейчас: [no]%ctime1%[/no]
[no]echo[/no] Команды до паузы...

cscript //nologo //e:javascript "[no]%0[/no]"

[no]:: Команды после паузы[/no]
[no]set[/no] "ctime2[no]=%time:~0,-3%[/no]"
[no]set[/no] /a "sec2[no]=[/no]36000[no]*%time:~0,1%+[/no]3600[no]*%time:~1,1%+[/no]600[no]*%time:~3,1%+[/no]60[no]*%time:~4,1%+[/no]10[no]*%time:~6,1%+%time:~7,1%[/no]"
[no]set[/no] /a "math[no]=%sec2%[/no]-[no]%sec1%[/no]"
[no]echo[/no] Сейчас: [no]%ctime2%[/no]. Прошло [no]%sec2%[/no]-[no]%sec1%=%math%[/no] секунд.
[no]echo[/no] Команды после паузы...

[no]pause[/no]
goto:eof

[no]*[/no]/ )
function rem() {
// Установите паузу в милисекундах
WScript.Sleep(15000)
}
Автор: wolf0425
Дата сообщения: 07.01.2008 09:17
Nagual ну сколько можно раз можно тут писать, что конструкции типа
set /a "sec2=%time:~0,2%*60+%time:~3,2%*60+%time:~6,2%"
- совершенно недопустимы, будь добр 6 циферок по отдельности умножать-складывать, а не группами по две.

для проверки потренируйся на
set time=09:09:09,09
set /a "sec2=считаешь как тебе нравится"

кстати, секунд должно получаться 32949, а никак не 1081
Автор: Nagual
Дата сообщения: 07.01.2008 14:06
wolf0425
ты прав, исправлено, хотя не принципиально
Автор: SymA
Дата сообщения: 07.01.2008 14:59
как избавиться от пробела в генерируемом этим батником файле ?
Код:
set file=%systemroot%\example.bat
echo SET ASDF=$%%date:~-10,2%%%%date:~-7,2%%%%date:~-4,4%%%%time:~-11,2%%%%time:~-8,2%%%%time:~-5,2%%$ >%file%
Автор: Smitis
Дата сообщения: 07.01.2008 15:03
Nagual
А чем мой вариант гибридного файла для паузы не нравился?

Код:
@set @x=0 /*
@echo off

:: Пауза в миллисекундах (3000)
cscript //nologo /e:jscript "%~f0" 3000

exit /b
*/
WScript.Sleep(WScript.Arguments(0))
Автор: Nagual
Дата сообщения: 07.01.2008 15:51
Smitis, не видел этого

SymA
многовато % у тебя

set file=%systemroot%\example.bat
set "ASDF=$%date:~-10,2%%date:~-7,2%%date:~-4,4%%time:~-11,2%%time:~-8,2%%time:~-5,2%$"
echo %ASDF%>%file%
Автор: Smitis
Дата сообщения: 07.01.2008 16:09
Nagual

Цитата:
Smitis, не видел этого

Щас поищу...
Да, ещё во второй части топика писал
http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=1800#5

П.С.
Кстати, в моём варианте не выводится на экран лишний текст.
Автор: SymA
Дата сообщения: 07.01.2008 20:24
Nagual помогло


окрываем "Мой Компьютер"; на C:\ например стоит автозапуск; кликаем по нему и в новом окне открывается прописанный в файле autorun.inf батник

Код: explorer \some_folder\
Автор: Smitis
Дата сообщения: 07.01.2008 21:07
Оформил для вставки в шапку

Делаем паузу в командном файле стандартными средствами Windows
(Для NT систем старше NT 4.0 - 2000, XP, 2003, Vista...)

Чаще всего для этих целей предлагают команду ping. Лично мне совершенно не нравится этот способ. Задержка, даваемая командой ping очень неточна. Более того, она очень зависит от настроек сети. У меня был случай, когда из-за файрвола пауза получалась какая угодно, но только не та, что была задана в команде.

Есть вариант с использованием утилит sleep.exe, choice.com, choice.exe. Их можно взять из Resource Kit, а choice.com из Win9x. Но ни одна из них не входит в "стандартную поставку" XP и 2000.

Предлагаемый мной способ - использование WSH, в частности jscript

Вариант 1. Файл sleep.js

Код:
if(isFinite(WScript.Arguments(0))) WScript.Sleep(WScript.Arguments(0))
Автор: SPY
Дата сообщения: 07.01.2008 21:18
сижу учусь писать bat файлы
пытаюсь использовать choice, по человечески не получается никак.. (
что не выбираю при выборе, 1 или 2 или 3
всегда запускается "calc.exe"
в чем причина, подскажите?
(ниже кусок кода..)

Код:
set TXT="Delaem vibor Elementa Menu"
choice /c 123 /M %TXT%
if errorlevel 1 goto :cl
if errorlevel 2 goto :np
if errorlevel 3 goto :mp
:cl
C:\Windows\System32\calc.exe
goto :end
:np
C:\Windows\System32\notepad.exe
goto :end
:mp
C:\Windows\System32\Mspaint.exe
goto :end
:end
Автор: king_stiven
Дата сообщения: 07.01.2008 21:31
SPY
Что, действительно никак не возможно перемещаться по экрану cmd в полноэкранном режиме?


В смысле курсор перемещать?
Где то в шапке есть "Пакет утилит для организации интерфейса в BAT(CMD)-программах"

Добавлено:
choice
У меня xp, такой команды нет
Автор: Smitis
Дата сообщения: 07.01.2008 21:36
SPY

Цитата:
что не выбираю при выборе, 1 или 2 или 3
всегда запускается "calc.exe"
в чем причина, подскажите?

Потому что условие if errorlevel 1 это больше или равно. Т.е., надо либо писать условие точно, либо располагать условия в обратном порядке:
if errorlevel 3 goto :mp
if errorlevel 2 goto :np
if errorlevel 1 goto :cl


Добавлено:
king_stiven

Цитата:
choice
У меня xp, такой команды нет

Стандартно в ХР такой команды нет
Автор: SPY
Дата сообщения: 07.01.2008 21:41
king_stiven
Действительно в XP нет (сижу сейчас за ноутом с вистой)

Тогда подскажите как организовать краткое меню из выбора соответствующих элементов (нажимая на соотв. клавиши), т.е. Запрос - Выбор - Выполнение..

Добавлено:
Smitis
Спасибо..

2ALL:
в итоге мне все равно под XP необходимо писать..
Автор: 01MDM
Дата сообщения: 07.01.2008 21:54
SPY

Set /p var="Enter 1 or 2: "
if %var%==1 calc
if %var%==2 mspaint

Автор: SPY
Дата сообщения: 08.01.2008 00:23
01MDM
все хорошо, только пока не закрою приложение, bat файл далее не выполняется..

(сорри, если туплю, но я никак это не исправлю..)
Автор: Elroir
Дата сообщения: 08.01.2008 05:03
SPY

Код:
if %var%==1 start calc
if %var%==2 start mspaint
Автор: Katina
Дата сообщения: 10.01.2008 09:24
На сервере есть папка, расшаренная для конкретных пользователей (только они выбраны в Свойствах папки на закладках Sharing и Security).
Нужно с помощью bat-файла отрубить доступ, сделать архивирование (это я знаю как), а потом снова вернуть доступ, какой он был.


Попробывала
net share PAPKA /delete
net share PAPKA C:\PAPKA

Это так можно убрать и сделать обратно, но вот только мне нужно расшарить только для конкретных пользователей
Автор: JohnRD
Дата сообщения: 10.01.2008 10:54
добрый день
всех с новым годом

есть вопрос
есть txt файл с подобными содержимым

Код:
EmailAddresses : {smtp:V.V.Ivanov@domain.ru, SMTP:Ivanov-VV
@domain.ru, smtp:Ivanov-VV@domain.local}

EmailAddresses : {smtp:A.A.Petrov@domain.ru, SMTP:Petrov-AA
@domain.ru, smtp:Petrov-AA@domain.local}
Автор: 01MDM
Дата сообщения: 10.01.2008 12:06
JohnRD

Цитата:
чтобы получился такой вид

V.V.Ivanov@domain.ru
Ivanov-VV@domain.ru

A.A.Petrov@domain.ru
Petrov-AA@domain.ru

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



Код:
@echo off
for /f "tokens=*" %%a in (log.txt) do (
    if not "%%i"=="" set "line=%%a" && call:line
    )
goto:eof
:line
if not %line:~0,1%==@ set "line1=%line%
if %line:~0,1%==@ set "string=%line1%%line%"
if defined string (
    for /f "tokens=3,5 delims=:," %%a in ("%string%") do (
        echo %%a>>result.txt
        echo %%b>>result.txt
    )
    set line1=
    set string=
)
Автор: Katina
Дата сообщения: 10.01.2008 12:50
На сервере есть папка, расшаренная для конкретных пользователей (только они выбраны в Свойствах папки на закладках Sharing и Security).
Нужно с помощью bat-файла отрубить доступ, сделать архив всей папки, а потом снова вернуть доступ, какой он был.
если файл из каталога занят пользователем, об этом выводится сообщение и требует ответа Y/N. Мне нужно вырубить всех, сделать архив и потом всех присоединить без зависающих сообщений и с сохранением всех файлов, даже тех, которые были заняты. Вот что я сделала:


net share TestAMBA /delete
"C:\Program Files\WinRAR\rar" a -r -agYYYY-MM-DD_HH-MM-SS -ep1 "C:\BACKUP_AMBA\Zpl_net " "C:\TestAMBA\Raschet\zpl_net\*.*"
net share TestAMBA=C:\TestAMBA ^
/grant:gd-usi\Administrator,full ^
Автор: SymA
Дата сообщения: 10.01.2008 17:13
неужели никто не подскажет ?

окрываем "Мой Компьютер"; на C:\ например стоит автозапуск; кликаем по нему и в новом окне открывается прописанный в файле autorun.inf батник


Код: explorer \some_folder\
Автор: king_stiven
Дата сообщения: 10.01.2008 18:12
SymA

сервис
свойства папки
открывать папки в одном и том же окне
Автор: 01MDM
Дата сообщения: 10.01.2008 18:36
SymA
Наверное нельзя. Нужно использовать какие-нибудь другие скрипты, которые эмулируют нажатие клавиш\мыши. А из батника откроется новое окно.
Автор: king_stiven
Дата сообщения: 10.01.2008 19:58
SymA
А ты сможешь обьяснить, зачем это тебе?
Автор: D77
Дата сообщения: 11.01.2008 01:32
Подскажите пажалста, ну не работает у меня моск в эту сторону
как сделать чтобы
del C:\002\(все_файлы_dbf_длиннее_14символов) /s
Автор: vu1tur
Дата сообщения: 11.01.2008 03:47
D77
for /F "delims=" %a in ('dir /b c:\002\ ^| grep -i "^.\{14\}.dbf$"') do @del /s "%a"

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


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