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

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

Автор: vmcho
Дата сообщения: 08.05.2009 17:12

Цитата:

more +1 test.txt 1>test.tmp
move test.tmp test.txt

5 баллов!!!
Я чайник и не знал, что таким образом можно с помощью команды more +n управлять выводом
Может и по моему посту что подскажешь?
Автор: mp3exchanger
Дата сообщения: 08.05.2009 18:02
01MDM, погонял, подходит.
Помоги, пожалуйста, теперь всё ЭТО правильно зациклить, чтобы выполнение батника прерывалось, когда test.txt уже пустой.

Код:
prog.exe d:\temp >>_output
more +1 test.txt 1>test.tmp
move test.tmp test.txt
Автор: 01MDM
Дата сообщения: 08.05.2009 18:11
vmcho

Цитата:
Может и по моему посту что подскажешь?

Errorlevel все равно должен возвращаться, если не удалось запустить файл, то errorlevel будет отличным от "0":

Код:
start prog.exe
if %errorlevel%==0 move /y prog.exe %DESTDIR%
Автор: mp3exchanger
Дата сообщения: 08.05.2009 18:31
Спасибо тебе большое, 01MDM
Автор: Road Runner J
Дата сообщения: 08.05.2009 20:54
При запуске chkdsk /F необходимо выбрать Y или N чтобы продолжить или не продолжить выполнение, а как такое [Y(да)/N(нет)] организовать в своём скрипте?
Автор: HaK1R
Дата сообщения: 08.05.2009 21:25
Road Runner J
если ДА то

Код: echo Y|chkdsk /F
Автор: vchobo
Дата сообщения: 08.05.2009 22:11
01MDM

Цитата:
Errorlevel все равно должен возвращаться, если не удалось запустить файл, то errorlevel будет отличным от "0":


У меня не получается
Приложение видовса при запуске выдает код ошиби всегда 0, не зависимо от того, нормальный ехешник или битый
Хотя в виндовом окне выдается сообщение об ошибке, что файл corrupted
Автор: HaK1R
Дата сообщения: 08.05.2009 22:21
vchobo
А у тебя exe-шник битый, это в чем проявляется?
если ехе-шник битый то он не будет запускаться, и тогда errorlevel будет равен 1, а если он у тебя 0, то exe-шник запустился.
Автор: vchobo
Дата сообщения: 08.05.2009 22:29
HaK1R


Цитата:
Newbie    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модераторуvchobo
А у тебя exe-шник битый, это в чем проявляется?
если ехе-шник битый то он не будет запускаться, и тогда errorlevel будет равен 1, а если он у тебя 0, то exe-шник запустился.

Ну это, скажем, по ночам свежий бесплатный антивирусный сканер KAV7 у меня качается, бывает, что не до конца скачивается, из 40 м только 5-10. Запускаю его для проверки работоспособности, в виндовом окне проскакивает, что файл corrapted, а %errorlevel% =0

Код:
start xxxxx.exe
echo %errorlevel%
0
Автор: NvvLazyTiger
Дата сообщения: 09.05.2009 04:23
vchobo
Цитата:
Запускаю его для проверки работоспособности, в виндовом окне проскакивает, что файл corrapted, а %errorlevel% =0

Проверка целостности EXE его запуском - это как бы неправильно. Т.к. надёжный анализ поведения запущенного (в т.ч. и его выдачи) - задача весьма не тривиальная.

С другой стороны, если скачиваемый файл заведомо исправен и повреждение происходит уже в процессе скачивания, то и отслеживать/анализировать нужно именно этот процесс (лог качалки).
Автор: vchobo
Дата сообщения: 09.05.2009 10:44
NvvLazyTiger

Цитата:
Проверка целостности EXE его запуском - это как бы неправильно. Т.к. надёжный анализ поведения запущенного (в т.ч. и его выдачи) - задача весьма не тривиальная.

Согласен. Но вроде с большой долей вероятности, если ехе стартовал без ошибок, то очень может быть он нормальный.

Цитата:
С другой стороны, если скачиваемый файл заведомо исправен и повреждение происходит уже в процессе скачивания, то и отслеживать/анализировать нужно именно этот процесс (лог качалки).

Наверное ты прав, придется анализировать лог wget
Автор: NvvLazyTiger
Дата сообщения: 10.05.2009 00:39
vchobo, к слову. В описанном случае можно поступить проще - сравнивать размер свеже скачанного и старого файлов. Если новый больше - ок, иначе - скачивать ешё раз. Этот способ менее надёжен, но, возможно, подойдёт.
Автор: anachrom
Дата сообщения: 10.05.2009 09:10
Подскажите как сделать что бы в определенный день недели выполнялся определенный код.
Смысл того, что должно получиться. Есть ежедневный BackUp. Нужно, чтобы в воскресенье все что было забэкапено за неделю скидывалось в папочку LastWeek, а то что делается в течении недели хранилось в папке Week.
Мой bat на данный момент выглядит так:
@echo off
echo %TIME%
md "%DATE%"
cd "%DATE%"
xcopy "Путь" /s /f /c > backup.log
Автор: Cosmogor
Дата сообщения: 10.05.2009 10:13
romrub

Спасибо! Работает как часы.

Есть ещё маленькии вопросик.
Код:

FOR %%I IN ("sleep.exe" "In.bat") DO IF EXIST ("%%I:\sleep.exe" "%%I:\In.bat") ELSE EXIT

Нужно проверить на наличие файлы ("sleep.exe" и "In.bat")
Если есть все файлы , то COPY (скопировать их)
а если нету хотя бы одного файла, то EXIT
У меня никак не получается, помогите пжл.
Или дайте ссылку на толковую справку функции FOR
Встроенную справку не могу понять
Автор: slech
Дата сообщения: 10.05.2009 10:19
всем привет.
как почучить дату за вчера ?
спасибо.
Автор: vchobo
Дата сообщения: 10.05.2009 10:27

Цитата:
всем привет.
как почучить дату за вчера ?
спасибо.


http://forum.ru-board.com/topic.cgi?forum=62&topic=11825&start=0&limit=1&m=4#1
Автор: Maza_Faka
Дата сообщения: 10.05.2009 11:13
Cosmogor

Цитата:
проверить на наличие файлы ("sleep.exe" и "In.bat")

Один из вариантов:

Код:
@Echo Off

If Exist sleep.exe If Exist In.bat (
Copy sleep.exe d:\
Copy In.bat d:\
)
Автор: vchobo
Дата сообщения: 10.05.2009 11:20
Народ! Подскажите, где посмотреть обработку текстовых переменных (триммирование, подстрока и т.п.)?
Автор: Cosmogor
Дата сообщения: 10.05.2009 12:16
Maza_Faka

Спасибо, как всегда твои скрипты
работают хорошо.
Автор: Maza_Faka
Дата сообщения: 10.05.2009 13:58
vchobo
А, что конкретно интересует? Выложите примеры :)
Автор: slech
Дата сообщения: 10.05.2009 14:16
vchobo
пробую Использование даты на день раньше чем сегодня (учитываются високосные годы)
получаю вот что

Цитата:

10
05
0-1
10-05-0-1

сегодня 2009-05-10
должен получить 2009-05-09
что нетак ?

Добавлено:
Использование даты на день раньше чем сегодня -

Цитата:

( was unexpected at this time.
Автор: vchobo
Дата сообщения: 10.05.2009 14:32
slech

Цитата:

Цитата:
10
05
0-1
10-05-0-1

сегодня 2009-05-10
должен получить 2009-05-09
что нетак ?
Автор: Cosmogor
Дата сообщения: 10.05.2009 14:32
Подскажите как сделать ярлык на
рабочем столе? С помощью батника.
Например для файла C:\1.txt
Автор: romrub
Дата сообщения: 10.05.2009 14:42

Цитата:

FOR %%I IN ("sleep.exe" "In.bat") DO IF EXIST ("%%I:\sleep.exe" "%%I:\In.bat") ELSE EXIT
Нужно проверить на наличие файлы ("sleep.exe" и "In.bat")
Если есть все файлы , то COPY (скопировать их)
а если нету хотя бы одного файла, то EXIT

вот так можно:

Код: FOR %%I IN ("sleep.exe" "In.bat") DO IF NOT EXIST %%I GOTO :Next
REM если есть все файлы из списка, здесь делать то, что надо
COPY sleep.exe d:\
COPY In.bat d:\
GOTO :Next

:Next
Автор: slech
Дата сообщения: 10.05.2009 14:44
vchobo
пока жи вывод по Date
вот что у меня

Цитата:

The current date is: Sun 05/10/2009
Enter the new date: (mm-dd-yy)

очень похоже на зависимость от региональных настроек.

тогда такой момент возникает.
можно ли имя файлы задать из текстового файла ?
так несрабатывает

Цитата:

rename today_date.bak | type name.txt

name.txt=yesterday_date.bak
получаю ошибку
The syntax of the command is incorrect.
yesterday_date.bak
Автор: mp3exchanger
Дата сообщения: 10.05.2009 15:32
Подскажите, пожалуйста, как сгенерировать батником строку длиной 32 символа, состоящую из случайных первых шести букв и любого числа и не обязательно, чтобы в сгенерированной строке были именно все 10 цифр и все шесть букв.
Пример:
8BCC837A01868AE4F0159E36EDBE624A
Автор: 01MDM
Дата сообщения: 10.05.2009 15:48
slech, vchobo

Узнаем текущий день недели:

Код:
wmic path win32_LocalTime get DayOfWeek
Автор: Cosmogor
Дата сообщения: 10.05.2009 15:57
romrub

Спасибо!
Вот блин, я и не знал, что есть такой файлик. (ntcmds.chm)
Автор: 01MDM
Дата сообщения: 10.05.2009 16:38
mp3exchanger

Код:
@echo off
setlocal

for /l %%i in (1,1,32) do (
for %%i in (a,b,c,d,e,f,0,1,2,3,4,5,6,7,8,9) do call:set %%i
for /f "tokens=3 delims=_=" %%i in ('set sign_') do set "str=%%i"
call:string
)

echo %string%

goto:eof

:set
set "sign_%random%=%1"
goto:eof

:string
set "string=%string%%str%"
for /f "tokens=1 delims==" %%i in ('set sign_') do set "%%i="
Автор: mp3exchanger
Дата сообщения: 10.05.2009 16:50
01MDM, к сожалению сразу не указал, но мне бы желательно, чтобы строка была с пробелами через каждые 2 символа и в конце строки стандартная фраза (одинаковая всегда).

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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