Войти

Показать полную графическую версию : [решено] Обнуление файлов в папке с подпапками


vk_k14m@vk
17-03-2017, 01:44
Есть папка. В ней может быть бесконечное количество подпапок (на самом деле не больше трех). Пример:
data\4f\cd
data\0b\72
data\fd\b0
data\sample\0a\96
data\sample\92\ef
data\sample\fd\db
и т.д.

Помогите написать скрипт, который будет помещен в папку "data". И при запуске обнулит размер (почти) всех файлов в подпапках без удаления этих файлов. И еще что б скрипт не трогал файл "Descr.WD3" который лежит в каждой конечной папке.

Iska
17-03-2017, 03:05
обнулит размер (почти) всех файлов в подпапках без удаления этих файлов. »
Зачем?

vk_k14m@vk
17-03-2017, 04:44
Зачем? »
Наверно незачем. В другой теме уже ответили. Но как альтернативный вариант хотелось бы попробовать.

Iska
17-03-2017, 07:05
vk_k14m@vk, Вы не ответили на вопрос. В чём будет состоять этот альтернативный вариант?

vk_k14m@vk
17-03-2017, 17:28
vk_k14m@vk, Вы не ответили на вопрос. В чём будет состоять этот альтернативный вариант? »
Мне нужно изменить неправильные расширения на правильные что с ними работать. Если я просто переименую или перемещу оригиналы то загрузкик скачает эти файлы заново. Можно сделать на эти файлы жесткие/символические ссылки и работать с ними не трогая оригиналы. А можно скопировать все оригиналы в другую папку, изменить расширение. А у оригиналов обнулить вес. Таким образом у меня будет две копии файлов. Но так как размер оригиналов нулевой то они не будут дважды занимать место на диске.

Сам загрузчик не сверяет объем файлов. Он смотрит только само наличие. Так что это можно назвать альтернативным решением моей проблемы.

Iska
17-03-2017, 17:46
А у оригиналов обнулить вес. … Сам загрузчик не сверяет объем файлов. Он смотрит только само наличие.»
Вы пишете, что не сравнивает — но по умолчанию обязательно должен сравнивать.

Думаю, вариант с жёсткими ссылками в параллельном каталоге будет проще и надёжнее.

vk_k14m@vk
18-03-2017, 03:11
Вы пишете, что не сравнивает — но по умолчанию обязательно должен сравнивать. »
Сравнивает если поставить эту галочку
https://pp.userapi.com/c836128/v836128606/2c639/J7SfEqFXY40.jpg

С такими настройка он будет просто проверять наличие файлов
https://pp.userapi.com/c639518/v639518606/14e94/JurSrweq5h8.jpg

Думаю, вариант с жёсткими ссылками в параллельном каталоге будет проще и надёжнее. »
Поверю на слово

megaloman
18-03-2017, 15:50
Если очень хочется обнулить размер (почти) всех файлов в подпапках без удаления этих файлов
@Echo Off

Set "BoxIn=Z:\Data\*.*"

Set "Exclude=\Descr.WD3"

Echo %Exclude%>~Exclude.tmp
Echo %~nx0>>~Exclude.tmp
md >"%~nx0.tmp" 2>nul

FOR /F "usebackq delims=" %%f IN (`xcopy "%BoxIn%" "%Tmp%\" /S /L /EXCLUDE:~Exclude.tmp`) DO If Exist "%%~dpnxf" Copy "%~nx0.tmp" "%%~dpnxf" >nul

Del ~Exclude.tmp
Del "%~nx0.tmp"
Здесь указан полный путь к обрабатываемой папке Data, это сделано намеренно для безопасности
@Echo Off

Set "Exclude=\Descr.WD3"

Echo %Exclude%>~Exclude.tmp
Echo %~nx0>>~Exclude.tmp
md >"%~nx0.tmp" 2>nul

FOR /F "usebackq delims=" %%f IN (`xcopy *.* "%Tmp%\" /S /L /EXCLUDE:~Exclude.tmp`) DO If Exist "%%~dpnxf" Echo Copy "%~nx0.tmp" "%%~dpnxf" >nul

Del ~Exclude.tmp
Del "%~nx0.tmp"По содержанию скрипт очень опасен, при запуске в неположенном месте испортит кучу файлов, для работы уберите красное Echo




© OSzone.net 2001-2012