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

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

Автор: Yuki2003
Дата сообщения: 27.07.2007 14:24
vserd

Цитата:
%%e но не %%d

%%e - автоматически создается, это работает

Цитата:
условие не выполняется, то %count% = 1

условие выполняется, сделайте echo - count в цикле (GoTo again) будет равен от 1 до кол-ва разделенных слэшами слов в строке файла List.txt

Добавлено:
vserd
Не работает другой цикл, перебор строк в файле List.txt ограничивается первой строкой.
Автор: KapralBel
Дата сообщения: 27.07.2007 15:16
Yuki2003
Ты приведи не облегченный вариант а полный и лист.тхт
Автор: Yuki2003
Дата сообщения: 27.07.2007 16:00
List.txt:

Цитата:
C:\Files\Mail\*
\\SERVER\Folder\*
\\SERVER\Another Folder\*

Test.bat:

Код: @Echo Off
setlocal ENABLEDELAYEDEXPANSION
For /f "eol=; delims=" %%c In ( List.txt ) Do ( ; читаем строки из List.txt
Set test=%%c
Set test1=%%c
Set count=0
:again
For /f "delims=\* tokens=1*" %%d In ("!test!") Do ( ; вычисляем "глубину" папки (в примере у всех - 2)
Set /a count=!count!+1
Echo %count%
Set test=%%e
)
If Not "!test!"=="" GoTo again
For /f "delims=\ tokens=%count%" %%f In ("%test1%") Do Set test1=%%f ; обрезаем до имени последней в пути папки
Echo !test1!
)
Автор: KapralBel
Дата сообщения: 27.07.2007 16:06
Yuki2003

Код: @Echo Off
setlocal ENABLEDELAYEDEXPANSION
For /f "eol=; delims=/" %%c In ( List.txt ) Do (
Set test=%%c
Set test1=%%c
Set count=0
:again
For /f "delims=/* tokens=1*" %%d In ("!test!") Do (
Set /a count=!count!+1
Echo %count%
Set test=%%e
)
If Not "!test!"=="" GoTo again
For /f "delims=/ tokens=%count%" %%f In ("%test1%") Do Set test1=%%f
Echo !test1!
)
Автор: Yuki2003
Дата сообщения: 27.07.2007 16:10
KapralBel
Замена обратных слэшей на прямые?? Гм, внешний цикл заработал, внутренний перестал...
Автор: KapralBel
Дата сообщения: 27.07.2007 16:13
Yuki2003
Ладно, пойдем другим путем

Вот 3 строки
C:\Files\Mail\*
\\SERVER\Folder\*
\\SERVER\Another Folder\*

Что из каждой надо получить?
Автор: Yuki2003
Дата сообщения: 27.07.2007 16:15

Цитата:
C:\Files\Mail\*
\\SERVER\Folder\*
\\SERVER\Another Folder\*

Mail
Folder
Another Folder

независимо от кол-ва слэшей!

Добавлено:
Вобщем с delims в примере все нормально. В чем-то другом прикол.
Автор: vserd
Дата сообщения: 27.07.2007 17:34
Yuki2003

Код:
@Echo Off
setlocal ENABLEDELAYEDEXPANSION
For /f "delims=" %%c In ( List.txt ) Do (
::Set test=%%c
Set test1=%%c
Set count=0
Call :GetCount "%%c"
Echo test1=!test1!
)

Goto :eof

:getCount
Set test=%~1

:again
For /f "delims=\* tokens=1*" %%d In ("!test!") Do (
Set /a count=!count!+1
Set test=%%e
)
If Not "!test!"=="" GoTo again

For /f "delims=\ tokens=%count%" %%f In ("%test1%") Do Set test1=%%f

goto :eof
Автор: Yuki2003
Дата сообщения: 27.07.2007 18:11
vserd
10x!
Автор: Maza Faka
Дата сообщения: 28.07.2007 06:42
Yuki2003
Ещё один вариант:

Код:
@echo off
setlocal enabledelayedexpansion
set count=2

:begin
for /f "skip=%count% delims=" %%a in ('find /v "" list.txt') do (
set str=%%a

:subrout
for /f "tokens=1* delims=\*" %%b in ("!str!") do (
set str=%%c
if defined str (
goto :subrout) else (
echo %%b>> out.txt
set /a count+=1
goto :begin
)
)
)
Автор: utka00
Дата сообщения: 28.07.2007 09:54
Можно ли заставить разные копии одной программы работать по разным интернет подключениям?
Автор: KapralBel
Дата сообщения: 28.07.2007 10:07
utka00
1. Не та тема
2. Скорее всего невозможно
3. Надо смотреть конкретную программу
Автор: utka00
Дата сообщения: 28.07.2007 10:18
KapralBel
я подумал что какнибудь спомощью команы route можно и по заголовку окна, а так то я еще в другом месте тему создал)
Автор: KapralBel
Дата сообщения: 28.07.2007 10:22
utka00
А ты пробовал ручками?

Если получится - то тогда мы поможем автоматизировать процес
Автор: utka00
Дата сообщения: 28.07.2007 10:32
KapralBel
всмысле как? Я несилен в командах поэтому и спрашиваю тут
Автор: KapralBel
Дата сообщения: 28.07.2007 13:07
utka00
В смысле если тебе каким либо образом руками это получится сделать, то мы поможем это автоматизировать (т.е. написать батник по распределению интернет-соединений между приложениями)
Но
1. стандартными способами это не сделаешь
2. Может быть в настройках конкретной программы и есть выбор
Автор: Stanley_Tweedle
Дата сообщения: 29.07.2007 15:05
Помогите решить задачу!
Есть html файл вида(ну естественно все упрощено)
file.html

Код:
<html>
<head>
<title>название</title>
</head>
<table>
<tr>
<td>Текущий баланс:</td>
<td width="100"><b>89.3668 руб</b></td>
</tr>
</table>
<html>
Автор: ZDik
Дата сообщения: 29.07.2007 15:49
поиск не помог, но так и не нашел подсказки
как прописывать постояный машрут для РРРОЕ соединения регулярно (не реже 24 часов) меняющий ИП-адрес
те в банике необходимо извлечь ИП-адрес, можно ipconfig, и выполнить пару "route add"

Автор: vserd
Дата сообщения: 29.07.2007 16:06
ZDik
смотри в сторону netsh


Добавлено:
Stanley_Tweedle

Цитата:
Необходимо как-то выделить значение баланса 89.3668 и сохранить его в файл balans.txt
Бьюсь над этим уже второй день...

Не верю.....
ВСЯ инфа есть в 2-х многостраничных топиках и cmd /k help



Код:
@echo off
setlocal enabledelayedexpansion
set needExtract=0
For /f "delims=" %%A in (balans.html) do (
if "!needExtract!"=="1" (
set needExtract=0
Set bs="%%A"
Set Bs=!BS:~20!
Set BS=!BS: руб^</b^>^</td^>"=!
Echo !bs! >balans.txt
set bs=
Goto :eof
)
if "%%A"=="<td>Текущий баланс:</td>" (
set needExtract=1
)
)
goto :Eof
Автор: Maza Faka
Дата сообщения: 29.07.2007 17:22
Stanley_Tweedle

Код:
@echo off
for /f "delims=" %%a in ('type file.html ^| find /i "руб"') do echo %%a>> balans.html
Автор: vserd
Дата сообщения: 29.07.2007 17:41
Maza Faka
Результат
<td width="100"><b>89.3668 руб</b></td>
А просили 89.3668

Второй лучше, :)))
остальное доработает автор вопроса. А то он разленится....
Он за это деньгу получает
Автор: Stanley_Tweedle
Дата сообщения: 30.07.2007 01:26
vserd, Maza Faka
Спасибо!

С вашей помощью все получилось
Теперь могу узнать балансы шести систем сразу, одним кликом!
Осталось придумать как отправлять сообщение по e-mail при достижении определенного лимита.
Постараюсь сделать это сам

Автор: Elroir
Дата сообщения: 30.07.2007 15:01
ZDik

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

Очень плохо искал.
Нажми вверху "Версия для печати" и задай поиск по слову "ipconfig". Найдешь много интересного.
Автор: dardreams
Дата сообщения: 31.07.2007 07:26
Привет Всем !
Я уже спрашивал про изменение размера окна. мне дали ссылку на hs_packet
Очень интересно и нужное. вопрос №1 Возможно ли делать тоже самое только без сторонних программ. и вопрос №2 там есть параметр hs_window (размер окна),есть ли способ также изменять размер буфера окна?
Автор: KapralBel
Дата сообщения: 31.07.2007 08:47
dardreams
Встроенными средствами нельзя
Автор: dardreams
Дата сообщения: 31.07.2007 09:15
Как само быстро вытащить сначала первую а потом вторую букву из файла и вывести их по отдельности.
Например есть файл myfile.txt
так он выглядет
---------------
123
---------------

Echo первый символ


Добавлено:
Echo Второй символ
Автор: KapralBel
Дата сообщения: 31.07.2007 09:29
dardreams
Именно 1 и 2-й символы файла?
или 1 и 2-й символы превой строки с символами?

Потому что если 1-я строка пустая, то первый и второй символы файла имеют код 13 и 10 (перевод строки) и с ними так просто не получится работать
Автор: vserd
Дата сообщения: 31.07.2007 09:34
Содержимое файла получишь сам.
Для конкретики %FileName%
Set FCh=!Filename:~0,1!
Set SCh=!Filename:~1,1!
Echo FCh=!FCh! SCh=!SCh!
Автор: dardreams
Дата сообщения: 31.07.2007 09:34
------------------------
qwetrtuioop[
qwertyuio
qwertyuio
qwertyuo

wqwertyui
------------------------
мне нужно просто ватаскивать по порядку каждый символ отдельно.
Автор: Elroir
Дата сообщения: 31.07.2007 09:45
dardreams

Код:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (file.txt) do (
set "count=0"
set "text=%%a"
call :show
)
goto :EOF
:show
if "!text:~%count%,1!"=="" (goto :EOF)
echo !text:~%count%,1!
set /a "count+=1"
goto show

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

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


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