Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автозамена при перемещении

Ответить
Настройки темы
CMD/BAT - [решено] Автозамена при перемещении

Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня есть много одинаковых (по имени - Material3) папок в различных под папках, очень много, в эти папках находятся *.mat файлы, среди *.mat файлов попадаются одинаковые

скриптом:

Код: Выделить весь код
for /f "tokens=*" %%b in ('dir /b /s Material3') do move /y "%%b" "%%~dpb../.."
перемещаю все эти папки в одно место, т.о. все папки должны слиться в одну, а все файлы *.mat переместиться в эту папку с заменой соответсвенно, но несмотря на использование ключа /y (пробовал и /Y) скрипт постоянно спрашивает о замене, как сделать автозамену в скрипте?

Отправлено: 09:16, 15-01-2011

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Tosyk, увы, мне отсюда не видно,
пост #18 - как получить лог для проблемного запуска (и не забыть убрать @echo off)

Отправлено: 04:06, 26-01-2011 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хорошо, сейчас сделаю распаковку, а затем с логом запущу скрипт.

Я всего лишь хотел попросить помочь со скриптом проверяющим только размер. возможно получилось бы, потому что распаковка занимает часа 4, плюс скрипт "по теме" до проблемного места (814 файл) работает около 2 часов

Отправлено: 04:36, 26-01-2011 | #32


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Tosyk, простая замена одной проверки другой ничего не даст - даже чуть замедлит работу, тут нужно пересматривать весь алгоритм... попробую глянуть, но ничего не гарантирую, да и причину сбоя всё равно надо знать...

Отправлено: 05:01, 26-01-2011 | #33


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


скрипт остановился на 814 файле, на том же самом (M01_00.mat), оказывается он всегда на этом файле останавливается, прошлый раз я был не прав когда сказал, что всегда последний файл другой.

так вот, в "подопытной структуре" остались ещё папки Material3 с примерно сотней файлов *.mat.

насмотря на остановку скрипта, в лог он продолжал записывать, да так много, что script.log вырос до 45 мегабайт, я остановил скрипт. Касперский сходит с ума сейчас.

нужен этот лог?

я посмотрел в него и вот, что выяснил:
- оригинальный файл называется M01.mat
- обработка M01.mat начинается с середины script.log и ему присваивается индекс _00
- далее всем файлам M01.mat отличающимся по содержанию присваивается индекс от _00 до _99
- нашёл папку, на которой останавливается работа скрипта и дальше во всех папках присутствуют необработанные *.mat, наряду с большим количеством (относительно других) M01.mat

вывод, личный, так как не специалист:

скрипт обрабатывает 100 разных файлов M01.mat, затем повторяет операцию над последним файлом снова и снова, что и было замечано в script.log: обработчик поочерёдно пытается одному и тому же файлу присвоить индекс от _00 до _99, после неудачи операция повторяется.

Отправлено: 08:57, 26-01-2011 | #34


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Tosyk:
скрипт обрабатывает 100 разных файлов M01.mat, затем повторяет операцию над последним файлом снова и снова, что и было замечано в script.log: обработчик поочерёдно пытается одному и тому же файлу присвоить индекс от _00 до _99, после неудачи операция повторяется. »
вполне логично - выделение под номер только двух знаков предполагает, что одинаковых файлов будет не больше 100

Отправлено: 09:28, 26-01-2011 | #35


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


а как тогда быть со скриптом? что нужно исправить в нём для добавления индекса с большим числом знаков?

Отправлено: 09:31, 26-01-2011 | #36


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


а сколько знаков хватит?.. три?.. четыре?

Отправлено: 09:48, 26-01-2011 | #37


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


на много время обработки вырастет если добавить:
Цитата amel27:
три?.. четыре? »
или нет прямой зависимости?

в любом случае нужно не менее 4 символов!

а по-поводу скрипта проверяющего размер, действительно он ничем не быстрее? хочется всё таки максимально ускорить процесс.

Отправлено: 09:55, 26-01-2011 | #38


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Tosyk:
на много время обработки вырастет если добавить »
От количества знаков скорость не зависит... Кстати, почему такой странный способ определения папки назначения - два уровня вверх относительно текущего расположения? Не проще явно указать путь назначения?.. Скажем, каталог с батником.

Отправлено: 10:05, 26-01-2011 | #39


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата amel27:
почему такой странный способ определения папки назначения - два уровня вверх относительно текущего расположения? »
СХЕМА РАБОТЫ ТАКАЯ:


У МЕНЯ ЕСТЬ СТРУКТУРА:

<root>\extractor.exe
<root>\archives_container\сколь угодно глубокая и сложная структура, содержит архивы
<root>\script.bat

каждый архив содержит одинаковую структуру папок, но разные (в основном) имена файлов:

----- Назову условно структуру - STRUCT01 -----

[strucrt01]
Material3\содержит *.mat файлы
MatInst\содержит *.mat файлы
...
FolderLast\содержит *.tga файлы
[/strucrt01]


РАБОТА СКРИПТА:

1 - распаковка архивов происходит в структуру:

<root>\_extracted\название_1-ого-архива\STRUCT01\файлы
<root>\_extracted\название_2-ого-архива\STRUCT01\файлы
...и т.д.

2 - теперь начинает работать скрипт по поиску и переносу файлов:

например он нашёл файл M01.mat в
<root>\_extracted\название_1-ого-архива\Material3\

и переносит его в папку (используя как раз 2 уровня вверх):
<root>\Material3\

получается у меня в корне будут все нужные мне папки (около 5-6) с файлами, вместо очень большого количества файлов в папке:
<root>\_extracted\

которая после завершения операции должна быть 0 байт

p.s.: надеюсь не слишком тупо написал, хотел как понятнее

Отправлено: 10:25, 26-01-2011 | #40



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автозамена при перемещении

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проблема с переносом разрешений при перемещении данных alnimo Microsoft Windows NT/2000/2003 5 21-12-2010 12:22
2003/XP/2000 - Изменение даты письма при перемещении между папками faktroot Microsoft Office (Word, Excel, Outlook и т.д.) 0 26-02-2010 17:58
Треск звука при перемещении мыши Dr. MefistO Непонятные проблемы с Железом 9 07-12-2008 14:26
Интерфейс - Неправильное отображение иконки файла при перемещении kopylovsergey Microsoft Windows 2000/XP 3 19-08-2008 11:24
[решено] Странная загрузка процессора при перемещении мыши DMGaster Microsoft Windows 2000/XP 12 13-09-2006 18:17




 
Переход