Вверх ↑
Этот топик читают: Гость
Ответов: 64
Рейтинг: 15
#16: 2012-01-27 00:08:15 ЛС | профиль | цитата
и добавляет к ним свой поток

То есть батник для поиска заблокированных файлов (с потоком), для того что бы в списке обработки были только они.
А зачем он свой поток добавляет?
------------ Дoбавленo в 00.08:
tomas писал(а):
На тебе заблокированный файл.

Он не заблокирован же .
Хорошо, что то обсуждение затянулось, игра не стоит свеч.

tomas Спасибо за участие.
карма: 0

0
Ответов: 273
Рейтинг: 29
#17: 2012-01-27 00:21:09 ЛС | профиль | цитата
sintet писал(а):
То есть батник для поиска заблокированных файлов (с потоком), для того что бы в списке обработки были только они.
А зачем он свой поток добавляет?
Неа.
Просто если система видит у вайлов поток безопасности - она считает файл заблокированным.
streams-d удаляет у файлов все потоки, в том числе и поток безопасности.
Если создать свой поток, его потом можно прочитать.
streams-d удаляет все потоки, значит удалит и наш.
Определить есть ли наш поток у файла или нет, можно прочитав этот самый поток.
Если поток есть, покажется его содержимое.
Если потока нет - скажет, что файл не найден.
Если поток есть, значит streams-d его не удалило, а значит этот файл оно и не обрабатывало.
Если потока нет, значит streams-d его уже удалило, а значит этот файл обработан.
Поймать этот момент можно только зная состояние потоков до и после обработки.
Для этого батник создает у всех файлов свой поток, и ждет.
Ты должен запустить батник и после, не закрывая батника, запустить streams-d и обработать файлы.
После закрытия streams-d перейди в окно батника и нажми любую клавишу - там появится длинный список.
Он состоит из 2-х строчек.
Первая строчка - путь и имя файла.
Вторая - содержимое потока или же его отсутствие.
Если содержимое потока = abcdefg, значит у файла после работы streams-d поток остался целым. Значит этот файл не обработан.
Если содержимое "файл не найден", значит у файла потоков больше нет, их все удалил streams-d.

Тебе особо не важно у каких именно файлов есть или нет потоки.
Твое дело - протестировать работу streams-d в разных режимах.
Ну и после тестирования поглядывать в окно батника - если там мелькает "файл не найден", значит все идет в штатном режиме.
В тестировании ты должен замерять разницу во времени в разных режимах - какой быстрее. Это важно, остальное - нет.
Если многопоточный режим не поддерживается, тогда только у первого файла будет уничтожен поток, а у остальных нет.
Так же и с режимом S - если он отработает успешно, у всех файлов из обработанной S папки должны стоять надписи "файл не найден"

Если тебе это сложно - лучше расклонируй exe, и тестируй на них.
Хотя батник тебе сразу показывает какие именно файлы затронуты, а exe ты должен будешь щелкать каждый вручную, ожидая диалогов разблокировки.


sintet писал(а):
Он не заблокирован же
У меня пишет, что заблокирован. Возможно ты с политиками доигрался до того, что блокировка есть, но ОС на нее не обращает внимания.
Хотя нет. Это я ступил - при копировании потоки теряются Так что не вариант.
Хотя можешь попробовать это. Тут вроде поток сохранил.

sintet писал(а):
Спасибо за участие.
Ок. Вернешься к доработке после переустановки
карма: 0

0
Ответов: 3889
Рейтинг: 362
#18: 2012-01-27 00:28:16 ЛС | профиль | цитата
tomas писал(а):
На тебе заблокированный

Ладно rar, но zip разве поддерживает файловые потоки?
карма: 1

0
Ответов: 64
Рейтинг: 15
#19: 2012-01-27 01:51:54 ЛС | профиль | цитата
tomas
Проще говоря

Команда для записи потока в файл (program.exe)
echo abcdefg > program.exe:mystream

Команда для чтения потока из файла (program.exe)
more < program.exe:mystream

Если пишет "Не удается найти указанный файл." значит поток отсутствует

Этот батник проделывает то же самое, со всеми файлами (*.*) откуда был запущен
@echo off
for /r %%f in (*.*) do echo abcdefg > %%f:mystream
echo Start programm Streams-D and press any key for contini
pause
echo .
for /r %%f in (*.*) do echo %%f & more < %%f:mystream & echo .
echo press any key for exit
pause
exit

Команда -s замечательно работает, обрабатывает всё содержимое папки, включая находящиеся в ней подпапки, и намного быстрее.
пример:
streams.exe -s -d "Crogram Files"

tomas писал(а):
Хотя можешь попробовать это. Тут вроде поток сохранил.

Да этот заблокирован, оставлю на память .
карма: 0

0
Ответов: 273
Рейтинг: 29
#20: 2012-01-27 08:43:17 ЛС | профиль | цитата
Хм. Похоже получилось сделать аналог streams-d в командной строке
000streams-d.bat
@echo off
for /r %%f in (*.exe) do echo [ZoneTransfer] > %%f:Zone.Identifier
echo Finish. Press any key for exit.
pause
exit
Способ применения - кинуть в папку и запустить. Батник перепишет только поток защиты, не затронув остальных потоков.
Работает рекурсивно, т.е. и по папкам и по подпапкам пройдет автоматом.
Настроен на *.exe, но можно изменить/добавить другие расширения, или вообще *.*
карма: 0

1
Голосовали:sintet
20
Сообщение
...
Прикрепленные файлы
(файлы не залиты)