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

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

Автор: 01MDM
Дата сообщения: 16.12.2007 12:57
boypenza
Если русский windows

Код:
dir | findstr ":" | findstr /v "DIR номер папки" | sort /+10
Автор: boypenza
Дата сообщения: 16.12.2007 15:57
BasiL
01MDM

Огромное спасибо вам, ребята!!! Собрал в кучу ваши варианты и сообразил. только вот вопрос к 01MDM:

а если в имени файла будет слово номер или папка, то он не выведется? я правильно понимаю?
Автор: BasiL
Дата сообщения: 16.12.2007 16:13
01MDM

Цитата:
dir | findstr ":" | findstr /v "DIR номер папки" | sort /+10


Оригинально вырезал последние две строчки
Автор: 01MDM
Дата сообщения: 16.12.2007 16:22
boypenza
Да, пожалуй этого файла ты не увидишь
Вот так будет лучше:

Код:
dir | findstr ":" | findstr /v "%cd% <DIR> тома:" | sort /+10
Автор: Smitis
Дата сообщения: 16.12.2007 23:18
slech

Цитата:
1. нужна утилитка которая будет ждать ввода № папки, так как в каждый день она новая.
2. нужна умная утилитка для копирования, copy точно не подойдёт. что бы ещё могла мне показать какие файлы различаются и что бы конечно копировала их. т.е. как бы отчёт что сделала.

robocopy, nnbackup
Имя папки вводить вручную в командной строке (передавать батнику в качестве параметра).
Автор: Estevan
Дата сообщения: 17.12.2007 13:06
Ребята всё же нужно решение задачи

Цитата:
За сувщевствующими архивами создать файл new.arj,в котором сохранить копию самого нового текстового файла.Вырезать этот файл с других архивов.

Поскольку люди говорят:

Цитата:
Я не вижу способа вытащить из .arj архивов нужные данные.

может мои предполажения будут полезными.
1.Распаковать все архивы по каталогам(названия каталогов соответствуют названиям архивов).
2.Осувщевствить поиск в этих каталогах текстового файла,дата создания которого является самой новой.
3.Вырезать этот текстовый файл в каталог(создаём заранее) New.
4.Заархивировать все файлы обратно в архивы(тоесть пункт 1 в обратном порядке:создаём архивы,названия которых соответствуют названиям каталогов,в которых лежат).

Автор: yurkesha
Дата сообщения: 17.12.2007 15:28

Цитата:
Я не вижу способа вытащить из .arj архивов нужные данные.
ну как же не получится?! А как же ключ 'l'? Тока еще придется со свичами поиграться - чтобы выставить удобное представление даты...
Автор: 01MDM
Дата сообщения: 17.12.2007 16:38
Estevan
У меня нет ни одного *.arj, поэтому на примере *.zip. Я думаю, что большой разницы нет.
Строчки для архиватора поправь на нужные. Запускай из директории с архивами.

Код:
@echo off
md New
for /f "tokens=*" %%i in ('dir /b *.zip') do (
    md "%%~ni"
    "%PROGRAMFILES%\7-zip\7z" e %%i -o"%%~ni"
    call:old "%%~ni"
)
"%PROGRAMFILES%\7-zip\7z" a -tzip New.zip New\*.*
rd /s /q New
goto:eof

:old
for /f "tokens=*" %%i in ('dir /b /od %1') do (
    move %%i New && goto:_rd
)
:_rd
rd /s /q %1
Автор: Elroir
Дата сообщения: 17.12.2007 19:04
yurkesha

Цитата:
А как же ключ 'l'

А ты попробуй
И обязательно на файлах с длинными именами с пробелами.
Автор: yurkesha
Дата сообщения: 17.12.2007 20:11
Elroir - ИМХО - если предположить что такие имена сидят уже сидят в архиве - то значит он их поддерживает - ведь их туда каким-то образом поместили? Так что и пробовать нечего - надо всего лишь взять ту версию архиватора которой все это было создано... А так понятно - что например версия под DOS 1994 года таковой поддержки иметь не будет, но ведь это совсем не последняя версия!

Автор: Elroir
Дата сообщения: 18.12.2007 05:44
yurkesha
Я не про поддержку файлов с длинными именами говорил, а про то, как arj их показывает.
Версию arj-а я брал последнюю. Так что ты все-таки попробуй.
Автор: yurkesha
Дата сообщения: 18.12.2007 10:40
Elroir - раз ты так настаиваешь пробуем:
берем последнюю версию arj32v314a (скачанную отсюда)
Архивируем папку с длинным именем и содержащую файлы с пробелами в именах, с множесмтвенныими точками и т.д. и т.п. Проверяем - никаких проблем с командой arj32 -l
ЗЫ - только не надо мне говорить что ты пробовал более старую версию - данная была зарелизена 1 августа 2006 года

Добавлено: или ты имеешь в виду что записи состоящие из двух строчек сложно парсить?
В такой ситуации не надо понимать мои слова о arj l буквально
Вполне табличный вид получится при использовании ARJ32.EXE v -jv1 "какое-то_имя.ARJ"
Да и вобщем это тоже не все варианты - я думаю что изучение arj.txt даст еще серьезную пищу для размышлений. Но не распаковывать же все файлы
Автор: Accessor
Дата сообщения: 18.12.2007 11:49
Народ, как-то здесь фигурировала команда, которая позволяет сохранить сетевые настройки, и обратная команда, которая восстанавливает сетевые настройки. Сейчас кинулся - найти не могу. Напомните, плиз.
Автор: BasiL
Дата сообщения: 18.12.2007 11:58
Accessor

Цитата:
команда, которая позволяет сохранить сетевые настройки, и обратная команда, которая восстанавливает сетевые настройки


Код: netsh dump > file.name
netsh exec file.name
Автор: Elroir
Дата сообщения: 18.12.2007 17:59
yurkesha

Цитата:
или ты имеешь в виду что записи состоящие из двух строчек сложно парсить?

Именно это я и имел в виду (ну почти это)
Даже используя "v -jv1", практически невозможно вытащить нужные поля. И дело тут даже не в двух строчках, а в невозможности заранее узнать сколько пробелов будет в имени файла и, соответственно, вытащить это название.
P.S.Конечно же, я использовал самую последнюю версию arj-а.
P.P.S. Если здесь есть спецы, способные показать мне, как можно настроить в arj-e фильтр того, что он (arj) выдает, я буду очень рад
Автор: gogo222
Дата сообщения: 18.12.2007 18:57
Народ помогите пожалуйста!!!!

"Создайте командный файл, который спрашивает: «Хотите ли вы узнать, как работать с программой ARJ.exe?» – и при положительном ответе («Y») выдает описание работы с программой, в противном случае прощается с вами."

"Создайте командный файл, который выполняет следующие действия: используя команду FOR, выдает на экран содержимое каталога NC, находящегося на диске C: в каталоге NC; после чего спрашивает: «Хотите ли вы распечатать данный каталог на принтере?»; при положительном ответе распечатывает содержимое каталога."
Автор: Elroir
Дата сообщения: 18.12.2007 19:04
gogo222
Для какой версии Windows эти задания?
Автор: yurkesha
Дата сообщения: 18.12.2007 19:46

Цитата:
невозможности заранее узнать сколько пробелов будет в имени файла
вот как раз именно при v -jv1 проблем не составляет. Благо имя в этой ситуации идет последним, а обозначения для цикла for типа 1*(один это тока для примера) еще никто не отменял.
Автор: Elroir
Дата сообщения: 18.12.2007 20:38
yurkesha

Цитата:
Благо имя в этой ситуации идет последним

ОК. Приведу пример. Вот 3 строчки из вывода "arj v -jv1":

Код:
011 WIN95 1405 693 0.493 01-09-28 17:20:24 670D8AA6 A--W B 1 .txt arj.txt.txt arj.txt.txt
011 WIN95 267270 75228 0.281 06-07-29 00:28:40 9FE57173 A--W B 1 .TXT Copy of ARJ.TXT Copy of ARJ.TXT
011 WIN95 5073 2001 0.394 06-07-29 00:28:40 BFB90711 A--W B+1 .TXT AGENTS.TXT New Folder\AGENTS.TXT

Автор: yurkesha
Дата сообщения: 18.12.2007 20:46
Elroir - так ты еще коменты пишешь в архив... Тоды еще посмотрю - там было что-то начет того чтоб коменты не отображать...
Хотя непонятно зачем в коменты писать имя файла... В такой ситуации полезней было бы уж запихнуть в него листинг файлов или вообще воспользоваться другим архиватором: во-первых бесплатным(arj под win32 все еще платен), во вторых тем который развивается активней , ну и на закуску поддерживающий мультипоточность(не реклама - имя то я не назвал!).
Автор: Elroir
Дата сообщения: 18.12.2007 21:01
yurkesha
Я вообще arj-ем в последний раз пользовался в тысяча девятьсот забытом году. Сам архиватор скачал специально, чтобы помочь Estevan-у. Ну и создал тестовый архив без всяких заморочек - "arj a -r archive *.*"
То есть он по умолчанию добавляет комментарии.
Все претензии и пожелания к Estevan
Автор: allexb
Дата сообщения: 19.12.2007 12:38
*************** ПЕРЕИМЕНОВАНИЕ ФАЙЛОВ ***************
В папке есть файлы:
provider.dll.reg
pscssint.dll.reg
psuiteax.ocx.reg
...

необходимо переименовать в:
provider(dll).reg
pscssint(dll).reg
psuiteax(ocx).reg
...

или в:
provider.reg
pscssint.reg
psuiteax.reg
Автор: Elroir
Дата сообщения: 19.12.2007 13:14
allexb

Код:
@echo off
for %%a in (*.*.reg) do call :renfile "%%a"
goto :EOF
:renfile
for /f "tokens=1* delims=." %%b in ("%~n1") do ren %1 "%%b^(%%c^).reg"
Автор: allexb
Дата сообщения: 19.12.2007 14:34
Elroir

Спасибо огромное! но луче без ^

Код: do ren %1 "%%b(%%c).reg"
Автор: Elroir
Дата сообщения: 19.12.2007 14:50
allexb

Цитата:
луче без ^

Конечно лучше.
Это я тестировал с командой echo и без кавычек, a она плохо скобки воспринимает.
Автор: Elisaveta
Дата сообщения: 19.12.2007 19:18
Уважаемые "гуру"!Нужно решение таких двух задач:
1.Посчитать общее количество каталогов и файлов на указаном диске(С возможностью выбора диска с сувщевтвующих).
2.Вывести на экран имена скрытых файлов на указаном диске(С возможностью выбора диска с сувщевтвующих).Выводить надо по одному,с возможностью сделать или его не сыкрытым(attrib -h) или вывести на экран следующий скрытый файл с этого диска.
Автор: king_stiven
Дата сообщения: 19.12.2007 20:08
Elisaveta

1

@echo off
set /p disk=Choice of a disk
for /f "tokens=*" %%c in ('dir %disk%:\ /b') do set /a count+=1
echo %count%

добавить ключи к dir для подсчёта скрытых, системных файлов, подкаталогов
Автор: xitsa
Дата сообщения: 19.12.2007 21:56
Нашёл интересную коллекцию bat-функций.
Запустить сразу удалось не всё, но есть что почерпнуть.
И ещё одна.
Автор: Elroir
Дата сообщения: 19.12.2007 23:56
Elisaveta

Цитата:
2.Вывести на экран имена скрытых файлов на указаном диске(С возможностью выбора диска с сувщевтвующих).Выводить надо по одному,с возможностью сделать или его не сыкрытым(attrib -h) или вывести на экран следующий скрытый файл с этого диска.


Код:
@echo off
set /p "disk=Choose the disk : "
for /f "tokens=*" %%a in ('dir /ah-d /b /s %disk%:\ 2^>nul') do call :unhide "%%a"
goto :EOF
:unhide
echo %~1
set /p "ans=Remove the attribute "hidden" from this file (y,n)? "
if "ans"=="y" attrib -r %1
Автор: cluster
Дата сообщения: 20.12.2007 08:17
Ребят, подскажите как в cmd работать с массивами?
вот такая задача: есть простой список элементов (в данном случае список пользователей), например:

Код: Иванов Андрей Николаевич
Матвеева Лариса Валентиновна
Алексеева Мария Анатольевна

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


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