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

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

Автор: wolf0425
Дата сообщения: 06.06.2007 12:14
mitrichbel

Цитата:
То есть хотелось бы, чтоб батник сам перебирал файлы попарно и сравнивал последние части, что ли.

что-то типа такого, максимальное количество (20) проверяемых символов перед расширением проставь как нравится.
и на циферки я сравниваемый хвост не проверял, imho обойдешься словом. но если надо - без проблем впишу.

Код: @echo off
setlocal enabledelayedexpansion

dir /b /s /a-d *.* 1>filelist.txt

for /f "tokens=*" %%a in (filelist.txt) do (
set "name=%%~na"
set "name2="
for /l %%i in (1,1,20) do if "!name2!"=="" if "!name:~-%%i,1!"==" " set "name2=!name:~-%%i!%%~xa"
for /f %%i in ('type filelist.txt ^| find /c "!name2!"') do if %%i gtr 1 echo found:%%~fa -- %%~ta -- %%~za bytes
)
Автор: mitrichbel
Дата сообщения: 06.06.2007 12:52
Maza Faka

Цитата:
Тебе вообще, что нужно сделать с этими файлами? Скопировать, переместить, удалить?
мне их нужно найти прежде всего, остальное вручную (сравнение и формирование одного файла из двух по собственному разумению).

Elroir

Цитата:
А если число не двузначное?
запросто и недвузначное может быть, да
Автор: wolf0425
Дата сообщения: 06.06.2007 13:09
mitrichbel так хвост после последнего пробела проверять на циферки обязательно или не очень?
Ну и сколькизначное там может быть число, если проверять - тоже интересно.
Автор: mitrichbel
Дата сообщения: 06.06.2007 14:45
wolf0425
нет, хвост после последнего пробела гарантированно из цифр. Сколькизначное - яне знаю, от чего это зависит, в имеющейся куче файлов есть десятизначные.
Автор: taxist77
Дата сообщения: 06.06.2007 15:07
Подскажите пожалуйста, необходимо скопировать содержимое текстового файла в переменную. Как это можно сделать?
Автор: wolf0425
Дата сообщения: 06.06.2007 15:17
taxist77
Цитата:
Необходимо скопировать содержимое текстового файла в переменную.

так выше по странице у Sovdep есть пример
set /p var=<file.txt

Но больше чем одна строка - в переменную не поместится никак.
Автор: NIKZZZZ
Дата сообщения: 06.06.2007 15:18
taxist77

Цитата:
Подскажите пожалуйста, необходимо скопировать содержимое текстового файла в переменную. Как это можно сделать?

Это нельзя сделать стандартными средствами, ограничение - одна строка.
Автор: taxist77
Дата сообщения: 06.06.2007 15:25
NIKZZZZ
wolf0425
меня одна строка вполне устраивает спасибо за оперативность!
Автор: Ruslan_FM
Дата сообщения: 06.06.2007 15:57
Как запросить с командной строки параметр , и присвоить ее переменной
типа
Echo *****************
Echo * Как вас завут . *
Echo *****************

???????
Set name=?????

Автор: KapralBel
Дата сообщения: 06.06.2007 16:08
Ruslan_FM
@Echo Off
Set /p name=
Автор: Ruslan_FM
Дата сообщения: 06.06.2007 16:12
KapralBel

СПАСИБО !!!!
Автор: wolf0425
Дата сообщения: 06.06.2007 16:31
Ruslan_FM, вы с taxist77 не сговорились, часом?
самостоятельно почитать set /? - совсем никак?

set /p name=* Как вас завут. *:
Автор: VovaII
Дата сообщения: 06.06.2007 16:40
Начали появлятья двухядерные процессоры, возникла задача.
Возможно ли через бат(или cmd)-файл запустить программу на одном(определенном(первом или втором)/неопределенном) ядре?
Автор: taxist77
Дата сообщения: 06.06.2007 16:49
wolf0425
С справкой работать умеем ) только не всегда хватает времени, к стати
set /p var=<test.txt не получаетса, хотя в этом файле всего одна строка (
Автор: KapralBel
Дата сообщения: 06.06.2007 16:59
taxist77
Работает
Давай батник полностью
Автор: wolf0425
Дата сообщения: 06.06.2007 17:13
VovaII

Цитата:
Возможно ли через бат(или cmd)-файл запустить программу на одном(определенном(первом или втором)/неопределенном) ядре?

http://www.ice-graphics.com/ICEAffinity/IndexR.html
Автор: sadmn
Дата сообщения: 06.06.2007 17:28
Подскажите пожалуйста, как наиболее быстро установить, есть ли на компьютере доступ к локальной сети из .bat файла?
В настоящий момент используется
...
ipconfig | Find /i "DNS">nul && goto start
...
Что приводит к задержке приблизительно в 1 секунду. Хотелось бы ускорить. Заранее спасибо!
([more=ответ ipconfig для вкл/откл]

Код: C:\>ipconfig
Настройка протокола IP для Windows
Подключение по локальной сети - Ethernet адаптер:
Состояние сети . . . . . . . . . : сеть отключена
Автор: taxist77
Дата сообщения: 06.06.2007 17:50
KapralBel
да собственно это и есть вес файл

set /p mes=<1.txt
net send 192.168.0.7 %mes%
Автор: wolf0425
Дата сообщения: 06.06.2007 18:07
taxist77 а что у тебя говорит net send 192.168.0.7 test ?
Автор: Elroir
Дата сообщения: 06.06.2007 18:16
mitrichbel

Цитата:
запросто и недвузначное может быть, да

Я это понял. Ты мой код, который я для тебя выложил, пробовал?
http://forum.ru-board.com/topic.cgi?forum=62&topic=10650&start=680#3
Автор: Maza Faka
Дата сообщения: 06.06.2007 18:22
sadmn

Цитата:
Что приводит к задержке приблизительно в 1 секунду

А что подождать секунду это критично?
Автор: taxist77
Дата сообщения: 06.06.2007 18:39
wolf0425
KapralBel
все ок, все работает, ручни наверное не от туда выросли
Автор: Sovdep
Дата сообщения: 07.06.2007 14:33
Предложеный Maza Faka вариан занести строку ФАЙЛА в %переменную% работает отлично:
for /F "tokens=*" %%a in ('grep "Video stream" PSNR') DO SET [VideoBitrate]=%%a

Непонятно почему не работает передача строки из ВЫХОДНОГО ПОТОКА другой программы:
type PSNR | for /F "tokens=*" %%a in ('grep "Video stream"') DO SET [VideoBitrate]=%%a
ECHO %[VideoBitrate]% - переменная пустая!

Пустая переменная на выходе цикла и все тут! В самом то цикле FOR DO значение присваивается. Но наружу ничего!
SETLOCAL EnableDelayedExpansion никак на результат не влияет.

Что-то я недогоняю.
Автор: Elroir
Дата сообщения: 07.06.2007 14:46
Sovdep

Цитата:
type PSNR | for /F "tokens=*" %%a in ('grep "Video stream"') DO SET [VideoBitrate]=%%a

"for /f" так не работает - он принимает ввод только из своих скобок.
Автор: Maza Faka
Дата сообщения: 07.06.2007 14:50
Sovdep
Так ты определись, строки какой команды или текста ты хочешь разбирать. Здесь:

Цитата:
type PSNR | for /F "tokens=*" %%a in ('grep "Video stream"') DO SET [VideoBitrate]=%%a

у тебя, переменной "VideoBitrate" будет присваиваться вывод команды "grep", а не строка из файла "PSNR".
Если нужны строки из файла "PSNR", его и разбирай:

Код:
for /f "tokens=*" %%a in ('type PSNR') do set VideoBitrate=%%a
Автор: Sovdep
Дата сообщения: 07.06.2007 15:22
Это сильно упрощенный пример. На самом деле "файл" РSNR это как бы выходной поток программы mencoder. То что мне нужно, в натуре выглядит крайне непригляно


Код: for /F "tokens=*" %%G in ('mencoder.exe "%[SourceFile]%" -vc mpeg12, -sws 9 -vf %[vf2]% -passlogfile "%[PassLogFile]%" -ovc %[ovc1]%%[ovc2]%bitrate=%[VideoBitrate2]%:pass=2:psnr -af %[af]% -oac %[oac]% -o "%[DestFile]%" -force-avi-aspect %[169]% -noencodedups') DO SET [VideoBitrate]=%%G
Автор: wolf0425
Дата сообщения: 07.06.2007 15:23
Maza Faka он же хочет PSNR через grep профильтровать перед обработкой...

Sovdep в FOR пайперы записываются так
for /f "tokens=*" %%a in ('type PSNR ^| grep "Video stream"') do set VideoBitrate=%%a


Добавлено:
Sovdep а у тебя такая строка без for - ещё не слишком длинная?
%[*File]% небось с полными путями влепил и через это страдаешь...
Автор: Sovdep
Дата сообщения: 07.06.2007 15:35
"Джеки" она еще понимает. А вот "Джеки Браун.mpg" уже нет

Все локально. Короче уже некуда.
Ведь mencoder, кто не знает, это функционально K-Lite c VirtualDub в одном .ехе файле. Ну и параметры командной строки там соответсвующие.

Автор: wolf0425
Дата сообщения: 07.06.2007 15:44
Sovdep совет "пиши лог mencoder в файл и не парься" - тебе нужен?
или будешь дальше думу думать?

Добавлено:
Sovdep кстати, наверно ты можешь мне подсказать консольную утилитку, плюющую продолжительность фильма (в числе прочего) в stdout?
Автор: mitrichbel
Дата сообщения: 07.06.2007 15:50
Elroir
вечером дома попробую, отпишусь. Но по твоей ссылке - код Maza Faka, который, как я понял, только для частного случая?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Автозагрузка терминальной сессии


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