|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автозамена при перемещении |
|
CMD/BAT - [решено] Автозамена при перемещении
|
Старожил Сообщения: 166 |
Профиль | Отправить PM | Цитировать У меня есть много одинаковых (по имени - Material3) папок в различных под папках, очень много, в эти папках находятся *.mat файлы, среди *.mat файлов попадаются одинаковые
скриптом: перемещаю все эти папки в одно место, т.о. все папки должны слиться в одну, а все файлы *.mat переместиться в эту папку с заменой соответсвенно, но несмотря на использование ключа /y (пробовал и /Y) скрипт постоянно спрашивает о замене, как сделать автозамену в скрипте? |
|
Отправлено: 09:16, 15-01-2011 |
Старожил Сообщения: 166
|
Профиль | Отправить PM | Цитировать спасибо, сейчас хочу запустить этот глобальный скрипт из поста #43, как я понял он то и сделает всю работу, так вот возможно ли сделать вывод в лог с отображением процесса в окне cmd?
add: в принципе не принципиально, я понял, что там особой информации нет в процессе. |
Последний раз редактировалось Tosyk, 13-02-2011 в 07:07. Отправлено: 06:05, 13-02-2011 | #81 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 166
|
Профиль | Отправить PM | Цитировать Ну что ж, скрипт работу завершил, вот последние строки:
Deleting source folder...OK Processed files all: 75748, including: moved : 12518 renamed : 5812 copies deleted: 57418 Script works complited! не сочтите за наглость, в довершение вот, что хотелось бы: для удобства распознования переименованных файлов, можно ли к их имени добавлять в конце имя папки в которой они распологаются? например: уже есть первый файл: F:\il tempo\SkeletalMesh\sm.bmp второй файл распологается в: F:\il tempo\_export_\01_SenLab_02bossarea\SkeletalMesh\sm.bmp" он прошёл проверку на "разность" и копируется в папку с первым файлом с именем sm_0001.bmp, а можно ли к этому имени добавить папку его содержащую, чтобы было так: F:\il tempo\SkeletalMesh\sm_0001_01_SenLab_02bossarea.bmp ? |
Отправлено: 08:45, 13-02-2011 | #82 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Tosyk:
Цитата Tosyk:
P.S. уж если и модернизировать скрипт, то в сторону применения DIFF вместо размера Цитата Tosyk:
|
|||
Отправлено: 08:49, 13-02-2011 | #83 |
Старожил Сообщения: 166
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Цитата amel27:
|
||
Отправлено: 09:01, 13-02-2011 | #84 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Tosyk:
Цитата Tosyk:
|
||
Отправлено: 09:56, 13-02-2011 | #85 |
Старожил Сообщения: 166
|
Профиль | Отправить PM | Цитировать Цитата amel27:
скрипт в том состоянии, что есть сейчас делает свою работу превосходно, и спасибо вам за это!, единственное что хотелось добавить это как раз добавление к скопированным и перемещённым "копиям" имя расположения для упрощения идентификации и дальнейшей работы с файлами, а вот оставлять 60000 копий файлов совсем не хотеловь бы |
|
Отправлено: 10:25, 13-02-2011 | #86 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать пришлось внести изменения в каждый шаг:
@echo off set root=.\_export_ if not exist "%root%" echo Can't find root folder!& pause>nul& exit SETLOCAL EnableDelayedExpansion for %%a in ("%root%") do set "rpth=%%~fa" <nul set/p $="Scanning and preparing folders..." (for /d %%a in ("%rpth%\*") do for /d %%b in ("%%~a\*") do ( if not exist ".\%%~nb\" md ".\%%~nb\" echo "%%~b"?"%%~na" ))>"%~dpn0.$~1" echo OK& <nul set/p $="Scanning files for moving..." (for /f "usebackq tokens=1,2 delims=?" %%A in ("%~dpn0.$~1") do ( for %%b in ("%%~A\*") do (set "$b=%%b" echo "!$b:%%~A=%~dp0%%~nA!"?"%%~zb"?"!$b!"?%%~B )))>"%~dpn0.$~2" echo OK& <nul set/p $="Sorting file list..." sort /l "C" "%~dpn0.$~2" /o "%~dpn0.$~3" echo OK& <nul set/p $="Processing file list..." set "$a="& set "$b="& set/a "$n1=0,$n2=0,$n3=0" for /f "usebackq tokens=1-4 delims=?" %%a in ("%~dpn0.$~3") do ( if not "!$a!"=="%%~a" ( move "%%~c" "%%~a" set/a $n1+=1 ) else if not "!$b!"=="%%~b" ( move "%%~c" "%%~dpna_%%~d%%~xa" set/a $n2+=1 ) else set/a $n3+=1 set "$a=%%~a"& set "$b=%%~b" ) echo OK& <nul set/p $="Deleting source folder..." rd /s/q "%rpth%" set/a "$n0=$n1+$n2+$n3" echo OK& echo(& echo Processed files all: !$n0!, including:& echo( echo moved : %$n1% echo renamed : %$n2% echo copies deleted: %$n3% ENDLOCAL echo(& echo Script works complited! pause>nul |
Отправлено: 11:37, 14-02-2011 | #87 |
Старожил Сообщения: 166
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Tosyk, 14-02-2011 в 16:31. Отправлено: 16:25, 14-02-2011 | #88 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Tosyk:
кстати, у меня MOVE не выдаёт сообщения о копировании, чтобы их подавить нужно добавить ">NUL": |
|
Отправлено: 16:42, 14-02-2011 | #89 |
Старожил Сообщения: 166
|
Профиль | Отправить PM | Цитировать Цитата amel27:
вообщем-то всё отлично сработало и достаточно быстро, около 40 минут. спасибо огромное, всё такие командный интерпритатор ещё способен на многое! кстати я хотел бы вернуться к разговору об определении типа файла и его модификации по hex-значениям если вы не против. немного лирики: не нравится чёрное возникающее окно при исполнении скрипта, хочется чего то более "native to user" и очень хочу прогресс-бара. определённо добиться этого можно только в среде программирования, но какой? возможно вы знаете и подскажете? пока я остановился на delphi, взял у друга, delphi v7.3.3.3 |
|
Отправлено: 16:58, 14-02-2011 | #90 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Проблема с переносом разрешений при перемещении данных | 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 |
|