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

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

Автор: merphy69
Дата сообщения: 07.08.2008 13:08
VitRom, спасибо! без "2>&1" выводилось не все!

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


Добавлено:
опытным путем установлено, что если поместить содержимое бат файла в скобки и после закрывающейся скобки написать
>>log.txt 2>&1
то в лог файл выведется все содержимое консоли. важно заметить что внутри скобок не должно быть комментариев начинающихся с "::", их следует заменить на "rem"
Автор: uZver
Дата сообщения: 07.08.2008 15:46

Цитата:
возможно ли делать вывод и в файл и на экран?

имхо нет, если только лог не открыть в каком нить редакторе на чтение. (например в far'е по F3)
Автор: 19w85
Дата сообщения: 07.08.2008 16:20
VitRom
2-ой вариант строки - это то, что и требовалось...
Спасибо.

А можно ли от имен вида
Код: xyz07,08,08(05-06-51).png
Автор: Elroir
Дата сообщения: 07.08.2008 19:56
merphy69

Цитата:
возможно ли делать вывод и в файл и на экран?

Шапка->"Полезные утилиты"->утилита "mtee"
Автор: NIKZZZZ
Дата сообщения: 07.08.2008 20:04
merphy69

Цитата:
возможно ли делать вывод и в файл и на экран?


Код: for /F "usebackq delims=" %%i in (`command`) do echo %%i&echo %%i>>FileLog.txt
Автор: Flashkens
Дата сообщения: 08.08.2008 12:02
Нужен следующий батник:
В файле config.ini нужно изменить строку с "ProxyHost=10.18.0.3" на "ProxyHost=192.168.1.111" написал следющее:

for /f "tokens=*" %%i in (Config.ini) do (if not %%i==ProxyHost^=10.8.0.3 echo %%i>>config2.ini
if %%i==ProxyHost^=10.18.0.3 echo ProxyHost=192.168.1.111>>config2.ini)
del config.ini
ren config2.ini config.ini

Но батник находит строку, заменяет а потом еще раз пише старый хост типа:
ProxyType=HTTP(S)
ProxyHost=192.168.1.111
ProxyHost=10.18.0.3
ProxyPort=3128

Возможно мне нужно увеличить счетчик на +1 но как не знаю...
Автор: igor_andreev
Дата сообщения: 08.08.2008 12:17
Flashkens

Код:
for /f "tokens=*" %%i in (Config.ini) do (
echo %%i | find /i "ProxyHost" && echo ProxyHost=192.168.1.111 >>config2.ini || echo %%i >>config2.ini
)
Автор: Elroir
Дата сообщения: 08.08.2008 12:28
Flashkens

Код:
for /f "tokens=*" %%i in (Config.ini) do (
if "%%i"=="ProxyHost=10.18.0.3" (
echo ProxyHost=192.168.1.111>>config2.ini) else (
echo %%i>>config2.ini)
)
del config.ini
ren config2.ini config.ini
Автор: igor_andreev
Дата сообщения: 08.08.2008 12:45
Elroir
А я тоже сначала такой вариант, как у тебя хотел предложить. Потом подумал - если ненароком в config.ini пробел будет после значения, то будет спотыкаться
"ProxyHost=10.18.0.3 " не равно "ProxyHost=10.18.0.3".
Или "ProxyHost = 10.18.0.3" не равно "ProxyHost=10.18.0.3".
Автор: Joolz
Дата сообщения: 08.08.2008 12:46
Или еще быстрее sed config.ini -i -e "s/10.18.0.3/192.168.1.111"
Автор: Elroir
Дата сообщения: 08.08.2008 13:52
igor_andreev
Я уже после того, как выложил код, именно об этом и подумал
Автор: lamener
Дата сообщения: 08.08.2008 16:05
Доброго всем времени суток !!
Задача !!
Есть некий текстовый документ пусть будет 1.txt взять из него первую строку!
Узнать длину строки если длина строки превышает 1024 символа! то разбить строку на две строки и записать в другой текстовый документ 2.txt
в виде :
строка 1
строка 2
Автор: Tipulatoid
Дата сообщения: 08.08.2008 16:45
lamener

Цитата:
Узнать длину строки если длина строки превышает 1024 символа! то разбить строку на две строки

Разбить по какому критерию? Т.е. сколько символов в первой, сколько во второй?
Автор: Elroir
Дата сообщения: 08.08.2008 16:56
lamener

Код:
@echo off
setlocal
set /p txt=<1.txt
if not "%txt:~1024%"=="" (
echo %txt:~0,1024%>2.txt
echo %txt:~1024%>>2.txt
)
Автор: Booba
Дата сообщения: 08.08.2008 17:09
Народ ткните лпиз носом, где почитать про создание архивного бэкапа с помощью winrar с помощью bat файла. Т.е. существует папка которую надо бэкапить раз в сутки в другую папку без удаления фалов и с разным именем архива в зависимости от даты. Желательно, чтоб батничег запускался как сервис.
Заранее спасибо.
Автор: igor_andreev
Дата сообщения: 08.08.2008 18:03
Booba

Цитата:
ткните лпиз носом

Есть два места, куда надо тыкаться носом в первую очередь.
1. Мануал. В папке, куда установлен WinRAR, есть два файла, WinRAR.chm и Rar.txt. В них есть ВСЕ.
2. Гугль. Достаточно набрать что-нибудь вроде "бэкап с помощью winrar" и найдешь кучу ссылок, статей, обсуждений на форумах, примеров командной строки и т.п.

И в последнюю очередь, если после хелпа и гугля что-то не получается, пиши тут командную строку, которая не совсем правильно работает, авось и подскажет кто...

Автор: pgofman2
Дата сообщения: 08.08.2008 18:36
Нужна помощь
в создании списка всех файлов диска или папки с ее поддиректориями
средствами bat исполняемого скрипта

итогом работы скрипта - нужет текст в таком виде

("diskname","path","filename","extention","size","datemodif")

этот список файлов нужен - для создания SQL файлов с лазерных болванок


заранее спасибо за помощь!
Автор: 01MDM
Дата сообщения: 08.08.2008 19:04
pgofman2

Код:
@echo off
chcp 1251 1>nul
if "%~1"=="" echo No Parameters && goto:eof
for /f "tokens=*" %%i in ('dir /b /s /a %1') do (
    echo "%%~di","%%~pi","%%~ni","%%~xi","%%~zi","%%~ti" 1>>list.txt
)
Автор: pgofman2
Дата сообщения: 09.08.2008 00:00
01MDM

СПАСИБО ОГРОМНОЕ
РАБОТАЕТ ВЕЛИКОЛЕПНО
Автор: 19w85
Дата сообщения: 09.08.2008 08:45
А может кто-нибудь подсказать, возможно ли через батник переименовывать имена вида "xyz07,08,08(05-06-51).png " в "xyz2008.08.07 (05-06-51).png" ?
(под "xyz" подразумевается текст произвольной длинны)

Переименование таких имен без текста в начале имени мне уже тут VitRom подсказал (спасибо ему), но хотелось бы еще более универсальный вариант...
Автор: lamener
Дата сообщения: 09.08.2008 10:00
Elroir
Что то не работает !

Код:
@echo off
setlocal
set /p txt=<1.txt
if not "%txt:~1024%"=="" (
echo %txt:~0,1024%>2.txt
echo %txt:~1024%>>2.txt
)
Автор: NIKZZZZ
Дата сообщения: 09.08.2008 14:41
19w85

Цитата:
переименовывать имена вида "xyz07,08,08(05-06-51).png " в "xyz2008.08.07 (05-06-51).png"


Код: ::Echo off
for %%i in (*.png) do call :RenFile "%%~i"
Goto :eof
:RenFile
set "name=%~n1"
set "names=%~sn1"
set "name1=%name:~0,-18%20%name:~-12,2%.%name:~-15,2%.%name:~-18,2%%name:~-10%"
ren "%~dp1%names%%~x1" "%name1%%~x1"
Goto :eof
Автор: Elroir
Дата сообщения: 09.08.2008 15:47
lamener

Цитата:
Что то не работает !

Приведи пример файла 1.txt, на котором батник падает.

Добавлено:
Хотя... - если в строке есть спец. символы, тогда ничего не сделаешь.
Автор: 19w85
Дата сообщения: 09.08.2008 19:00
NIKZZZZ
Спасибо.
А можно еще подправить?
1) чтобы перед скобкой добавлялся пробел
2) чтобы при обработке имен без текста перед датой "07,08,08(05-06-51).png" не добавлялась 2 раза 20-ка "202007.08.08(05-06-51).png"
3) При повторном запуске не переименовывались еще раз все файлы *.png а переименовывались только файлы вида "*07,08,08*.png"
Автор: 01MDM
Дата сообщения: 09.08.2008 19:17
19w85
Попробуй вариант. Проверить не могу - кпк

Код:
@echo off
setlocal
for %%a in (*.png) do (
    set "file=%%a"
    for /f "tokens=1-4 delims=,(" %%i in ("%%a") do (
        set _1=%%i
        set _2=%%j
        set _3=%%k
        set _4=%%l
        call:ren
    )
)
goto:eof

:ren
ren "%file%" "%_1:~0,-2%20%_3%.%_2%.%_1:~-2% (%_4%"
Автор: 19w85
Дата сообщения: 09.08.2008 19:22
01MDM
Из "07,08,08(05-06-51).png" получается "02008 .08 .7 (05-06-51).png"
Из "xyz07,08,08(05-06-51).png" -> "xyz02008 .08 .7 (05-06-51).png"
При повторном запуске все эти файлы переименовываются еще раз...
"xyz02008 .08 .7 (05-06-51).png" -> "xyz02008 .08 .7 20 .05-06-51).png . ("
Автор: NIKZZZZ
Дата сообщения: 09.08.2008 20:02
19w85


Код: Echo off
for /f "usebackq delims=" %%i in (`dir /b /a-d "*.png"`) do call :RenFile "%%~i"
Goto :eof
:RenFile
set "name=%~n1"
if not "%name:~-11,1%"==" " (
set "names=%~sn1"
set "name1=%name:~0,-18%20%name:~-12,2%.%name:~-15,2%.%name:~-18,2% %name:~-10%"
ren "%~dp1%names%%~x1" "%name1%%~x1"
)
Goto :eof
Автор: 19w85
Дата сообщения: 09.08.2008 20:18
NIKZZZZ
Что-то переименование вообще не происходит...
Автор: 01MDM
Дата сообщения: 09.08.2008 20:19
19w85
А ты убирал концевые пробелы? Они здесь критичны. Там где set _1 и т.д
У меня все работает.
Автор: 19w85
Дата сообщения: 09.08.2008 20:44
01MDM
Убрал...
1-ый вариант теперь нормально: Из "xyz07,08,08(05-06-51).png" получается "xyz2008.08.07 (05-06-51).png" -> (повторный запуск) "xyz2008.08.020.05-06-51).png.7 ("

Из "07,08,08(05-06-51).png" -> "2008.08.020.05-06-51).png.7 ("

Добавлено:
Добавив пробел и изменив тут маску на "*,??,*.png" все стало работать как надо...

Тут тоже хватило замены маски

NIKZZZZ, 01MDM
Большое спасибо

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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