Re: Урок bat-аники
От: hacsoft http://fsaver.hut1.ru
Дата: 21.11.05 17:19
Оценка:
Здравствуйте, Алексей Александров, Вы писали:

Тут: здесь
Решают задачи на bat-файлах!
http://fsaver.hut1.ru — файлохранилище!
Re: Урок bat-аники
От: Геннадий Майко США  
Дата: 23.11.05 06:37
Оценка: 18 (2)
Здравствуйте, Алексей Александров,


ПРЕДУПРЕЖДЕНИЕ

Опасайтесь бездумного применения команды cd %~dp0 без проверки результата выполнения. Теоретически, эта команда должна сменить текущий каталог на каталог, в котором расположен командный файл. Как правило, это работает.

--
Небольшой комментарий к этому тексту из статьи.
Если путь каталога содержит имя диска (как в этом случае), то желательно к аргументам команды cd добавить ключ /d, так как без него эта команда диск не сменит.

C уважением,
Геннадий Майко.
Re[2]: Урок bat-аники
От: Alex Alexandrov США  
Дата: 15.02.06 18:12
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:

ГМ>Здравствуйте, Алексей Александров,



ГМ>ПРЕДУПРЕЖДЕНИЕ


ГМ>Опасайтесь бездумного применения команды cd %~dp0 без проверки результата выполнения. Теоретически, эта команда должна сменить текущий каталог на каталог, в котором расположен командный файл. Как правило, это работает.

ГМ>--
ГМ>Небольшой комментарий к этому тексту из статьи.
ГМ>Если путь каталога содержит имя диска (как в этом случае), то желательно к аргументам команды cd добавить ключ /d, так как без него эта команда диск не сменит.

Точно. Забыл про это.
It's kind of fun to do the impossible (Walt Disney)
Re[3]: Урок bat-аники
От: Аноним  
Дата: 17.02.06 22:03
Оценка:
Уважаемый ALL!
Помогите советом.Нужно архивировать базу под ДОС 6.2.Главное чтобы менять по желанию период.Как лучше сделать скриптовый язык и батник.Лучше ссылку наготовый скрипт,потому как времени нет.
Заранее благодарен.
Re[4]: Урок bat-аники
От: Аноним  
Дата: 18.02.06 08:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Уважаемый ALL!

А>Помогите советом.Нужно архивировать базу под ДОС 6.2.Главное чтобы менять по желанию период.Как лучше сделать скриптовый язык и батник.Лучше ссылку наготовый скрипт,потому как времени нет.
А>Заранее благодарен.

Что значит менять период?
Дату/время создания архива или вставить дату в имя архива?
Re[5]: Урок bat-аники
От: Аноним  
Дата: 18.02.06 10:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Уважаемый ALL!

А>>Помогите советом.Нужно архивировать базу под ДОС 6.2.Главное чтобы менять по желанию период.Как лучше сделать скриптовый язык и батник.Лучше ссылку наготовый скрипт,потому как времени нет.
А>>Заранее благодарен.

А>Что значит менять период?

А>Дату/время создания архива или вставить дату в имя архива?
Нужно иметь две копии одну ежедневную другую например недельной давности или пятидневной.Этот период выбирается произвольно.При этом юзер всегда жмет только одну клавишу.
Re: Урок bat-аники
От: Аноним  
Дата: 01.08.06 11:34
Оценка:
Здравствуйте, Алексей Александров, Вы писали:

Получается что так
rem "%~d1\microsoft\technet\files\WindowsXP-KB917537-x86-ENU.exe"

set pt = %~d1\microsoft\technet\files\
"%pt%WindowsXP-KB917537-x86-ENU.exe"


сделать не получится?
Re[2]: Урок bat-аники
От: Аноним  
Дата: 01.08.06 11:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Алексей Александров, Вы писали:


А>Получается что так

А>
А>rem "%~d1\microsoft\technet\files\WindowsXP-KB917537-x86-ENU.exe"

А>set pt = %~d1\microsoft\technet\files\
А>"%pt%WindowsXP-KB917537-x86-ENU.exe"
А>


А>сделать не получится?


Почему? Все зависит от того, что в параметре 1. Может, имелось в виду %~d0? Каталог, в котором находится этот батник.
Re: Урок bat-аники
От: Master Yoda Великобритания  
Дата: 01.08.06 12:04
Оценка:
Здравствуйте, Алексей Александров, Вы писали:

<...>

Рекомендую:

Справочник по параметрам командной строки (рус. яз.)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[2]: Урок bat-аники
От: Roman Odaisky Украина  
Дата: 02.08.06 08:23
Оценка:
Здравствуйте, ddanila, Вы писали:

D>А вот пример quine (уф...):

D>
D>@echo off
D>call :print %%%%
D>call :print %%%%1 echo.%%%%2
D>goto :eof
D>:print
D>echo.%2@echo off
D>echo.%2call :print %1%1%1%1
D>echo.%2call :print %1%1%1%11 echo.%1%1%1%12
D>echo.%2goto :eof
D>echo.%2:print
D>

D>Проверено только под Windows XP SP2.

На .bat'ах Quine делаются и проще
До последнего не верил в пирамиду Лебедева.
Re: reverse.cmd
От: Roman Odaisky Украина  
Дата: 25.08.06 12:05
Оценка:
@echo off

if "%~1"=="" (
    echo Usage:
    echo     %~n0 a.b.c.d
    echo     %~n0 a b c d
    echo.
    echo Performs a reverse lookup on IP a.b.c.d.

    goto :EOF
)

if "%~4"=="" (
    for /F "usebackq tokens=1,2,3,4 delims=." %%a in ('%1') do call :doit %%d.%%c.%%b.%%a
) else (
    call :doit %4.%3.%2.%1
)

goto :EOF

:doit
nslookup -type=PTR %1.in-addr.arpa
До последнего не верил в пирамиду Лебедева.
Re[2]: reverse.cmd
От: wildwind Россия  
Дата: 25.08.06 15:50
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>
RO>    echo Performs a reverse lookup on IP a.b.c.d.


Так nslookup вроде и сам умеет делать "reverse" и добавлять in-addr.arpa
Re[3]: Урок bat-аники
От: UFB  
Дата: 26.08.06 09:30
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>На .bat'ах Quine делаются и проще


Да это весьма оригинальное решение
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251"></HEAD>
<BODY><PRE></PRE></BODY></HTML>


L.V. Beethoven — Moonlight Sonata
Вариации на тему sleep
От: UFB  
Дата: 26.08.06 09:47
Оценка:
Значит понадобилось усыпить исполнение на некоторое время.
Команды такой по умолчании нет.
Найденые варианты

1. sleep.exe из Windows Resource Kit

2. ping
ping -n [timeout] -w 1 localhost > nul

timeout в секундах

3. WScript.sleep
ECHO WScript.sleep(1000); > %temp%\sleep.js 
cscript %temp%\sleep.js 
IF EXIST %temp%\sleep.js DEL /Q %temp%\sleep.js

здесь таймаут указывается в мс WScript.sleep([timeout])

4. Обычный цикл
for /L %%b in (1,1,20000) Do @Echo %%b > Nul

тут все подбирается экспериментально.

Какие кто знает ещё варианты?
Да работоспособность на разных вариантах многоликой ОС MS Windows не исследовалась, так как нужна работа только под XP.
ЗЫ: маленький этюдик такой


Shocking Blue — Venus
Re[4]: Урок bat-аники
От: Roman Odaisky Украина  
Дата: 27.08.06 16:59
Оценка:
Здравствуйте, UFB, Вы писали:

RO>>На .bat'ах Quine делаются и проще


UFB>Да это весьма оригинальное решение

UFB>
UFB><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
UFB><HTML><HEAD>
UFB><META http-equiv=Content-Type content="text/html; charset=windows-1251"></HEAD>
UFB><BODY><PRE></PRE></BODY></HTML>
UFB>


Это overservice Надо было сделать просто Content-Type: text/plain
До последнего не верил в пирамиду Лебедева.
Re[3]: reverse.cmd
От: Roman Odaisky Украина  
Дата: 27.08.06 17:02
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, Roman Odaisky, Вы писали:


RO>>
RO>>    echo Performs a reverse lookup on IP a.b.c.d.
W>


W>Так nslookup вроде и сам умеет делать "reverse" и добавлять in-addr.arpa
До последнего не верил в пирамиду Лебедева.
Re[4]: reverse.cmd
От: wildwind Россия  
Дата: 28.08.06 11:31
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

Не понял ответа (если это был ответ).
Re: bat, потоки и Unicode
От: fsheet  
Дата: 31.08.06 16:27
Оценка:
Даже не знаю, в какой форум писать, по этому пишу здесь:

Есть ли возможность перенаправить стандартный вывод в файл в формате Unicode (например, dir >…)?
Дело в том, что вывод в консоль точно идет в Unicode, но для этого надо установить соответствующий шрифт (Lucida Console например), а сохранить в первоначальном виде в файл это не удается…
Re[5]: reverse.cmd
От: Roman Odaisky Украина  
Дата: 21.09.06 20:15
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Не понял ответа (если это был ответ).


И правда, ответ потерялся...

Это предполагался вопрос: как?

P. S. Говорят, nslookup — одна из худших программ, но зато она есть везде
До последнего не верил в пирамиду Лебедева.
Re: /bin/which
От: Roman Odaisky Украина  
Дата: 21.09.06 20:20
Оценка:
Попроще:
@echo %~$PATH:1

С учетом расширений (com/exe/bat/...):
@echo off

setlocal
set target=%~1

call :loop "%pathext:;=:%"
goto :EOF

:loop
    for /f "usebackq tokens=1* delims=:" %%i in ('%~1') do (
        call :test %target%%%i
        if "%%j" neq "" call :loop "%%j"
        goto :EOF
    )

:test
    set exp=%~$path:1
    if "%exp%" neq "" (echo %exp%)
    goto :EOF
До последнего не верил в пирамиду Лебедева.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.