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

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

Автор: Varset
Дата сообщения: 17.10.2007 06:15
Просмотрел все четыре части темы, но ответа не нашел.
Чем можно запаковать несколько тысяч файлов, расположенных во множестве подкаталогов?
То есть сами каталоги не паковать, только файлы, рекурсивно, имя архива равно имени файла.
Нечто вроде этого:
rar a -r test.rar *.*
Но здесь пакуется в один архив, а мне требуется в отдельный для каждого файла, причем архив должен лежать в том же подкаталоге, где архивируемый файл.
Не нашел я у консольного winrar ключа "каждый файл в отдельный архив"..
Автор: AndryG
Дата сообщения: 17.10.2007 08:10
"Почти решение" Вашей задачи не раз появлялось на этих страницах ...
нужно рекурсивно обходить дерево каталогов (именно эта часть много раз упоминается)
и для каждого найденного файла запускать архиватор.

А можно запихнуть все-все файлы с путями в один архив, а потом их оттуда по одному вытаскивать батником и ложить в свой

Добавлено:
Например вот задачка
http://forum.ru-board.com/topic.cgi?forum=62&topic=6156#3
И ответ ... http://forum.ru-board.com/topic.cgi?forum=62&topic=6156#13
Автор: c0yc
Дата сообщения: 17.10.2007 09:05
Возникли 2 задачки:

1.Необходимо что бы при втсавлении влешки в компьютер - флешка форматировалась (на кройняк что бы просто не работала)

2.Поиск по определенной категории файла\папки с заданной маской.(что бы все проходило на автомате) и происходило удаление

Заранее спасибо
Автор: AndryG
Дата сообщения: 17.10.2007 09:09
to Varset
... Освободился ... пробовал на тестовом деревце - получилось ...

Код:
@echo off
rem Архиватор лежит возле батника
set path=%path%;%~dp0
rem "Обнуляем" лог
echo START %TIME%>%~dpn0.log
echo Please wait...
for /r %%d in (.) do (
cd %%d
for %%f in (*.*) do (
if /i not %%~xf==.rar (
call rar.exe a "%%~nf" "%%f" >nul
echo "%%~nf" "%%f" >>%~dpn0.log
)
)
)
Автор: Maza Faka
Дата сообщения: 17.10.2007 09:21
Varset
Пример:

Код:
@ECHO OFF
FOR /R C:\WORK %%A IN (*.*) DO RAR A -M5 -EP "%%~DPA\%%~NXA.RAR" "%%A"
Автор: Nagual
Дата сообщения: 17.10.2007 10:11
Maza Faka

Цитата:
Varset
Пример:

Код:
@ECHO OFF
FOR /R C:\WORK %%A IN (*.*) DO RAR A -M5 -EP "%%~DPA\%%~NXA.RAR" "%%A"

потестировал твой код
проблемы с рекурсией в твоем коде возникают
список файлов упакованных в тестовой папке FAR
7-ZipEng.hlf.RAR
7-ZipEng.hlf.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR
7-ZipEng.hlf.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR.RAR

код AndryG работает отлично


Добавлено:
нет, код AndryG тоже не идеален
если имена у файлов одинаковы и расширения разные, то они будут паковаться в один архив, что не соответствует поставленной задаче


Добавлено:

Код: @echo off
echo Please wait...
for /r %%d in (.) do (
cd %%d
for %%f in (*.*) do (
if /i not %%~xf==.rar rar u "%%~f.rar" "%%f">nul
)
)
Автор: AndryG
Дата сообщения: 17.10.2007 10:41
Я как-раз сделал по поставленной задаче это постановка страдает ...

Вот вариант .. имя архива будет состоять из имени файла и расширения ...
Подправьте строку .. один парочку символов

Код:
call rar.exe a "%%~nxf.rar" "%%f" >nul
Автор: Maza Faka
Дата сообщения: 17.10.2007 11:45
Nagual
Я писал батник для однократного применения, так, как в условиях задачи не было указанно обратного. Учитывая это немного исправил код:

Код:
@ECHO OFF

FOR /F "DELIMS=" %%A IN ('DIR C:\TEMP /B /S /A:-D ^| FINDSTR /I /V ".RAR\>"') DO (
IF NOT EXIST "%%A.RAR" RAR A -M5 -EP "%%~DPA\%%~NXA.RAR" "%%A"
)
Автор: Nagual
Дата сообщения: 17.10.2007 12:12
Maza Faka
а это \> зачем?

Код: for /f "delims=" %%a in ('dir/b/s/a:-d^|findstr/i/v ".rar"') do if not exist "%%a.rar" rar u -m5 -ep "%%~a.rar" "%%a"
Автор: Maza Faka
Дата сообщения: 17.10.2007 13:27
Nagual

Цитата:
а это \> зачем?

Это регулярное выражение, означающее
Цитата:
Позиция слова: конец слова
, я его применил не к месту .


Цитата:
так тоже работает

Ага, вот только представь , что у нас в каталоге имеется файл, например с таким названием: MY.RAR.TEST.TXT и он естественно попадёт под фильтр и не будет обработан, поэтому вот окончательный[?] вариант:

Код:
@ECHO OFF

FOR /F "DELIMS=" %%A IN ('DIR C:\TEMP /B /S /A:-D ^| FINDSTR /I /V ".RAR$"') DO (
IF NOT EXIST "%%A.RAR" RAR A -M5 -EP "%%~DPA\%%~NXA.RAR" "%%A"
)
Автор: popalka
Дата сообщения: 17.10.2007 13:52
Что означает конструкция в bat-файле:
set JAVA_HOME=$C(COMMON, BUNDLED_JAVA_HOME)

непонятно, что такое $C(...,...)

Автор: KapralBel
Дата сообщения: 17.10.2007 14:16
popalka
Объявляется переменная окружения JAVA_HOMЕ и какая-то программа (Джава скорее всего) её обрабатывает
А смысл значения только в документации к этой программе
Автор: Nagual
Дата сообщения: 18.10.2007 11:56
Maza Faka
согласен, обрабатывать надо, хоть и вероятность этого весьма мала
вариант для закидывания в текущий каталог, удобен тем, что нет необходимости постоянно править путь
достаточно скопировать в обрабатываемую папку и там запустить
Код: for /f "delims=" %%a in ('dir/b/s/a:-d^|findstr/i/v ".rar$"') do if not exist "%%a.rar" rar u -m5 -ep "%%~a.rar" "%%a" &del/q "%0.rar"
Автор: hhr
Дата сообщения: 18.10.2007 13:30
можно ли назначить определенного юзера владельцем каталога через консоль?
есть сотня юзеров, есть файлик, содержащий их имена. нужно в определенном месте создать кучу каталогов по имени юзера, чтобы на каждый каталог был свой владелец.
Автор: KapralBel
Дата сообщения: 18.10.2007 13:56
hhr
subinacl.exe /help

download
Автор: cluster
Дата сообщения: 18.10.2007 19:45
Ребят, не подскажите, есть ли консольные утилитки, чтобы при копировании\перемещении\удалении прогресс бар отображался?
Автор: king_stiven
Дата сообщения: 18.10.2007 22:13
cluster
http://forum.ru-board.com/topic.cgi?forum=62&topic=11825&start=400
2 пост, можно переделать под себя
Автор: Nagual
Дата сообщения: 18.10.2007 23:03
cluster
тырк
ключик /pb заставит отображаться прогресс бар на файлах >=1M
а вообще

Код: xxcopy/help|findstr/i "bar"
Автор: cluster
Дата сообщения: 19.10.2007 01:00
Nagual
king_stiven
Оо, благодарю. Вариант от king_stiven мне больше понравился.
Автор: diaminru
Дата сообщения: 19.10.2007 08:14
как из батника заставить интернет эксплорер найти на открытой странице определенную ссылку по ее текстовому обозначению на странице и перейти по этой ссылке??
или если не перейти, то получить ссылку которая находится под определенным текстом...
Автор: koc
Дата сообщения: 19.10.2007 08:39
есть файлы:
uha.exe
RiTdata0.uha
RiTdata1.uha
RiTdata2.uha
нужен батник для ввода пути копирования и копирования.


все, разобрался, удалите плизз
Автор: ASTERIKS88
Дата сообщения: 19.10.2007 11:01
Доброго времени суток

Такой вопрос, можно ли прописать в батнике перезагрузку в safe mode??? Если обычная перезагрузка:


Код: C:\WINDOWS\system32\shutdown.exe -r -f -t 01
Автор: vu1tur
Дата сообщения: 19.10.2007 11:07
ASTERIKS88
нужно перед выполнением команды каким-то способом изменить boot.ini, добавив /safeboot:minimal.
Автор: ASTERIKS88
Дата сообщения: 19.10.2007 11:09
Это я таким образом заменю обычную перезагрузку на сэйв мод. А мне нужен ярлык или батник для разовых случаев
Автор: KapralBel
Дата сообщения: 19.10.2007 11:16
удалено
Автор: ASTERIKS88
Дата сообщения: 19.10.2007 11:18
Значит если сделать так:

Код: [boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect /usepmtimer /safeboot:minimal
Автор: vu1tur
Дата сообщения: 19.10.2007 11:21
ASTERIKS88
ну так что мешает сделать батник такого содержания?

Код:
copy /Y c:\boot.ini.safe c:\boot.ini
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce /v nextbootnormal /t REG_SZ /d c:\nextbootnormal.bat
shutdown -r -f -t 01
Автор: Nagual
Дата сообщения: 19.10.2007 11:22
ASTERIKS88
bootcfg /?
думаю должно помочь
Автор: Elroir
Дата сообщения: 19.10.2007 12:16
diaminru

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

Не думаю, что это возможно.
Автор: ASTERIKS88
Дата сообщения: 20.10.2007 11:08

Цитата:
ну так что мешает сделать батник такого содержания?


Код: copy /Y c:\boot.ini.safe c:\boot.ini
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce /v nextbootnormal /t REG_SZ /d c:\nextbootnormal.bat
shutdown -r -f -t 01



где nextbootnormal.bat, соответственно такой:


Код: copy /Y c:\boot.ini.normal c:\boot.ini

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

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


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