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

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

Автор: gnome
Дата сообщения: 06.02.2007 09:39
Архиватор Winara используется для backup -а, при попытке архивирования файлов Outlook выдает такую ошибку: "Процесс не может получить доступ к файлу, так как файл занят другим процессом." Выполняется bat файл. Надо или заархивировать этот файл или пропустить его архивацию, чтобы winrar не прерывал свою работу. Или может посоветуете как написать bat файл для решения данной проблемы.
rar a -r -rr5p -m2 -ag+YYYYMMDDHHMM -hp******* -k -v1g -x*\old\* -s -ms -ilogc:\lograr.txt

-dh не помогает.


Посоветовали обойти это при помощи обрабатывать код завершения рара в bat-файле при помощи ERRORLEVEL

Приведите пожалуйста пример использования ERRORLEVEL или может решение этой проблемы.
Автор: FormatCvt
Дата сообщения: 06.02.2007 10:27
Попробуй в RARe ключ –INUL (не выводить сообщения об ошибках). Вроде помогает, сейчас не могу проверить.
Автор: Accessor
Дата сообщения: 06.02.2007 14:45
Народ, пишу в комстроке следующее:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Desktop"
в ответ получаю ошибку? толи я торможу, то ли сильно мудрёная утилита, но как бы там ни было - надо получить значение этого параметра. Прошу помощи.
Автор: gnome
Дата сообщения: 06.02.2007 14:57
FormatCvt

Цитата:
Попробуй в RARe ключ –INUL

сейчас просто вылетает
Автор: Elroir
Дата сообщения: 06.02.2007 15:04
Accessor

Цитата:
Народ, пишу в комстроке следующее:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Desktop"
в ответ получаю ошибку?

Команда абсолютно верная - у меня нормально выдает значение.
А какую ошибку получаешь?
Автор: Accessor
Дата сообщения: 06.02.2007 16:30
Elroir
Пишет:
Ошибка. Имеются дополнительные данные

и на этом всё ...
Автор: miheenko
Дата сообщения: 06.02.2007 16:39
Доброго дня.
Вопрос.
есть тексьтовый файл bat.txt содержания:

2.690.010=00
0=00
2.690.020=00

нужно получить к примеру:

Сумма 2.690.010=00
Итог 0=00
Итого 2.690.020=00


Автор: Elroir
Дата сообщения: 06.02.2007 18:03
miheenko

Код:
@echo off
setlocal enabledelayedexpansion
chcp 1251>nul
set "count=1"
for /f "tokens=*" %%a in (bat.txt) do (
if !count!==1 echo Сумма %%a
if !count!==2 echo Итог %%a
if !count!==3 echo Итого %%a
set /a "count+=1"
)
Автор: miheenko
Дата сообщения: 06.02.2007 20:01
Спасибо

Добавлено:
@echo off
setlocal enabledelayedexpansion
chcp 1251>nul
set "count=1"
for /f "tokens=*" %%a in (bat.txt) do (
if !count!==1 echo Сумма %%a
if !count!==2 echo Итог %%a
if !count!==3 echo Итого %%a
set /a "count+=1"
)>>bat2.txt

Вот так заработало.
Автор: miheenko
Дата сообщения: 07.02.2007 07:23
@Echo off

setlocal enabledelayedexpansion
chcp 1251>nul

rem Выборка нужной инфы, и запись ее в файл
for /F "skip=9 tokens=5,*" %%i in (d:\bat\m4020501.snt) do echo %%i | find ""|| echo %%i%%j >> bat1.txt
rem Добавление текста
set "count=1"
for /f "tokens=*" %%a in (bat1.txt) do (
if !count!==1 echo Сумма %%a
if !count!==2 echo Итог %%a
if !count!==3 echo Итого %%a
set /a "count+=1"
)>>bat2.txt

rem Удаление файла
del bat1.txt

rem конец
:end
Exit
Автор: Accessor
Дата сообщения: 07.02.2007 10:11
Elroir

Цитата:
А на каком-нибудь другом ключе пробовал?

Да, на соседних разделах "Tips" и "WindowsUpdate" всё в порядке. Видимо проблема заключается в пробелах в имени раздела "User Shell Folders".
Короче, я выкрутился так:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" /v "Common Desktop" /s
немного кривовато, но для моего разового случая сойдёт
Автор: miheenko
Дата сообщения: 07.02.2007 10:23
Доброго дня.
Есть текст в столбик

ход
вода
снег

Надо его отформатировать так

ход вода снег

Как это сделать?


Добавлено:
у меня не получается.
Автор: Fraerok
Дата сообщения: 08.02.2007 19:38
Привет!
Можно ли сделать такой батник, чтобы он:
1. смотрел цифру рядом с параметром "Frame(?)"
в ветке реестра [HKEY_CLASSES_ROOT\WRTE.Document.1\UID]
2. потом брал сегодняшнюю дату и умножал год на 365, номер месяца на 30 и скаладывал все это с сегодняшним числом (т.е. например сегодня 2007*365+30*2+8=732623)
3. и записывал все это в параметр, который был на 1. найден (например, [HKEY_CLASSES_ROOT\WRTE.Document.1\UID]
"Frame11"="@732623")
Автор: Zakkazak
Дата сообщения: 08.02.2007 20:14
miheenko
Вордом не пробовал, он же запросто заменит знаки абзаца на пробелы.
Автор: Elroir
Дата сообщения: 08.02.2007 20:59
Fraerok
1. Какой формат у системной даты? (что выдает команда "echo %date%")
2. Зачем находить число после frame?

Добавлено:
3. Параметр frame** только один или там есть еще frame-ы?
Автор: Fraerok
Дата сообщения: 08.02.2007 21:59
Elroir
1. 08.02.2007
2. Просто, насколько я понимаю эта цифра может быть разной. Но в принципе сама цифра-то не нужна, нужно только название этого параметра, а оно может отличаться цифрой)
3. Frame? только один.

P.s. Вообще этот параметр содержит дату инсталляции программы winrar и иногда необходимо её сбрасывать =) А цифра после Frame, я так понимаю, может быть разной у разных версий.
Автор: Elroir
Дата сообщения: 08.02.2007 22:04
Fraerok
ОК. Понятно. Тогда так:

Код:
@echo off
setlocal
for /f "usebackq tokens=1" %%a in (`"reg query HKCR\WRTE.Document.1\UID /s | find /i "frame""`) do set "frame=%%a"
set "cdate=%date%"
set "cday=%cdate:~0,2%"
set "cmonth=%cdate:~3,2%"
set "cyear=%cdate:~6,4%"
if %cday% LSS 10 set "cday=%cday:~-1%"
if %cmonth% LSS 10 set "cmonth=%cmonth:~-1%"
set /a "days=cday+cmonth*30+cyear*365"
reg add HKCR\WRTE.Document.1\UID /v %frame% /d "@%days%">nul
Автор: Fraerok
Дата сообщения: 08.02.2007 22:30
Elroir
че-то не работает. Открывается окошко и все и даже не закрывается само.
в реестр ничего не добавляется.
Автор: Elroir
Дата сообщения: 08.02.2007 22:39
Fraerok
Попробуй так - посмотри, что выдается:

Код:
@echo off
setlocal
for /f "usebackq tokens=1" %%a in (`"reg query HKCR\WRTE.Document.1\UID /s | find /i "frame""`) do set "frame=%%a"
echo Key name = %frame%
pause
set "cdate=%date%"
set "cday=%cdate:~0,2%"
set "cmonth=%cdate:~3,2%"
set "cyear=%cdate:~6,4%"
if %cday% LSS 10 set "cday=%cday:~-1%"
if %cmonth% LSS 10 set "cmonth=%cmonth:~-1%"
set /a "days=cday+cmonth*30+cyear*365"
echo Number of days = %days%
pause
rem reg add HKCR\WRTE.Document.1\UID /v %frame% /d "@%days%">nul
Автор: Fraerok
Дата сообщения: 08.02.2007 22:41
Elroir
Key name = Frame11
Для продолжение нажмите любую клавишу...
Автор: Elroir
Дата сообщения: 08.02.2007 22:42
Какая у тебя версия Windows? - все, уже ответил
Нажми любую клавишу, а потом, когда спросит - еще раз.
Автор: Fraerok
Дата сообщения: 08.02.2007 22:43
=)
а, нажал и теперь Number of days = 732623


Добавлено:
XP SP2
т.е. мы имеем
Код:
Key name = Frame11
Для продолжение нажмите любую клавишу...
Number of days = 732623
Для продолжение нажмите любую клавишу...
-> выход
Автор: Elroir
Дата сообщения: 08.02.2007 22:46
Fraerok
Мда... запусти из командной строки

Код: reg add HKCR\WRTE.Document.1\UID /v Frame12 /d "@123456"
Автор: Fraerok
Дата сообщения: 08.02.2007 22:52
Elroir
да, добавилась
Автор: Elroir
Дата сообщения: 08.02.2007 22:59
Fraerok
А... все - я понял. Моя ошибка - я скрыл вывод утилиты reg.exe, а она когда добавляет в реестр значение параметра, который уже существует, запрашивает подтверждение .
В общем так:
1. Из реестра удалить Frame12
2. В коде батника, добавить /f в последней строчке:

Код:
reg add HKCR\WRTE.Document.1\UID /v %frame% /d "@%days%" /f >nul
Автор: Fraerok
Дата сообщения: 08.02.2007 23:01
по-идее, батник должен спросить нужно ли замениь параметр на новый, в скрипет он этого не делает, вроде? Может, адо запомнить переменную, а перед добавление стерть её?

Добавлено:
Elroir
да, ты меня опередил) теперь работает. Спасибо!
Автор: Compik
Дата сообщения: 10.02.2007 10:37
Привет!
А можно ли сделать, чтобы после вывода сообщения ECHO
поставить ... и что бы была одна, потом две, потом три точки
и так далее в цикле, пока не загрузится новый экран?
Например: Please wait ...
Автор: Elroir
Дата сообщения: 10.02.2007 12:31
Compik
Что значит "пока не загрузится новый экран"? Ты хочешь, чтобы echo выдавало точки, пока работает что-то другое (батник выполняет другую операцию)?
Автор: king_stiven
Дата сообщения: 10.02.2007 20:48
Пожалуйста , поиогите со следующим вопросом: скачал скрипт на php, он вытаскивает информацию из mp3 файлов, а куда задавать вопросы по его практическому применению не знаю. Так как полазил по форуму, и понял , что php используется в web. И вообще, смогу ли я его прикрутить к батнику?
Автор: Compik
Дата сообщения: 11.02.2007 21:25
Elroir
Кусок кода батника:
-------------------------------------
: link4
cls
@\BOOTWIZ\reinstal.com
@echo off
mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys
echo.
echo.
echo Start WINDOWS 98 ...
win
-------------------------------------------
При загрузке Win98 некоторое время торчит надпись Start WINDOWS 98 ...
Хочется, чтобы было видно, что комп не висит

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


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