20.06.2012 09:46
student
 
Цитата:
OlegON А удаление перемещает файлы? ;) Создание каталога может быть запрещено (если каталог без права записи, а файлы - rw), да и не факт, что кто-то не бабахнет в этот каталог что-то полезное, не зная, что ты его чистишь (если что-то случится и каталог останется, например), что касается %TEMP%, то он может быть на другом диске.
удаление тоже не перемещает, так же пометка ставится :), просто если винда и если есть что то что пихает все в корзинку (на ранних стадиях я подобное встречал у нортоновских утилит) то там будет копирование всех файликов, а в случае каталога только его одного...

а так - да - что пнем по голове, что головой об пень...

ps
посмотри обсуждение

там есть цитата из мс - Предложили переименовать каталог и спокойно удалять из него файлы пока все не удалятся:)

pps
либо заюзай что либо внешнее типа FastCopy


или Quick Delete 1.0
20.06.2012 10:28
OlegON
 
Любишь ты сообщения править :)
Внешнее по задаче исключается, должно работать у всех по штатному. Это не так, чтобы я не мог почистить каталог, это в скрипт надо впихнуть. Каталог переименовать не дадут, внутри открытые файлы и я не уверен, что база не закроется, если обнаружит, что логи аудита писать некуда (а речь про них).
20.06.2012 11:00
student
 
Цитата:
OlegON Любишь ты сообщения править :)
Внешнее по задаче исключается, должно работать у всех по штатному. Это не так, чтобы я не мог почистить каталог, это в скрипт надо впихнуть. Каталог переименовать не дадут, внутри открытые файлы и я не уверен, что база не закроется, если обнаружит, что логи аудита писать некуда (а речь про них).
офф: ага, люблю :) просто не всегда с первого раза удается сформулировать, а раз такая возможность есть то почему бы не поюзать...

а если в скрипт и без внешних утилит - мне кажется оптимальным все таки будет из него стартануть внешний батник - отдельный поток - в нем создать создать катлог, переместить туда (чтобы результат в исходном сразу видно было) и запустить его удаление - пусть удаляется потихоньку - мешать то это уже никому не будет...
20.06.2012 11:05
vdm
 
А чем пофайловое удаление в стандартном for не устраивает?
Медленно?
Или там также, как в del, проблемы на большом количестве файлов?
20.06.2012 11:25
grannie
 
Цитата:
OlegON как факт - отваливается после какого-то предела. как раз про ХР или 2003 речь..
А это точно не что-то внешнее типа антивируса так влияет? Да, бывает долго, но чтоб отваливалось - не видел ни разу.
20.06.2012 12:52
OlegON
 
Если честно, теперь уже не уверен, что видел это на винде, у меня тут и солярка и чпукс. Как факт - файлы на винде не удалялись, теперь ломаю голову, может это просто занятость части файлов сказывалась... Сейчас запущу батничек, поделюсь результатами...
Код:
echo off
set CNT=1500000
mkdir bobo 
for /L %%i in (1,1,%CNT%) do @echo>bobo\%%i.tmp
echo del
time /t 
del bobo\*.tmp 
time /t
for /L %%i in (1,1,%CNT%) do @echo>bobo\%%i.tmp
echo move
time /t 
mkdir bobo\bubu
move bobo\*.tmp bobo\bubu >null
rmdir bobo\bubu /S /Q
time /t
for /L %%i in (1,1,%CNT%) do @echo>bobo\%%i.tmp
echo for
time /t 
for %%i in (bobo\*.tmp) do @del %%i
time /t
rmdir /S /Q bobo
21.06.2012 09:26
OlegON
 
Сраная винда, консоль вылетела при прерывании. Но приблизительные результаты были следующие:
del ~ 11 минут
move ~ 20 минут
for был запущен вчера в момент написания сообщения и вот сейчас я его прибил, поскольку он жрал 100% проца. Судя по тому, как rmdir трудится над тем, что осталось, осталось там еще ооочень много.
03.07.2012 14:33
mat skywalker
 
Есть еще VBS помимо CMD в Винде. Такие скрипты нагрузят проц на 50%:

set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
FSO.DeleteFolder "C:\1" 'Удаляем папку C:\1

set FSO=CreateObject("Scripting.FileSystemObject") 'Подключаем FileSystemObject
FSO.DeleteFile "C:\1.txt" 'Удаляем файл C:\1.txt
Часовой пояс GMT +3, время: 20:13.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.