|
|
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Помогите, не могу никак побороть скрипт ;) Задача: необходимо в конкретной папке удалить все файлы (удовлетворяющие условию) и пустые папки. Также необходимо исключить из удаления конкретную папку и подпапки в ней. вот мой скрипт: Код: plaintext 1. 2. Этот скрипт делает первое действие (удаляет файлы и папки). Как теперь его преобразовать, чтобы он исключал из удаления ..ну скажем.. папку c:\test\test\test3 ? То есть даже если все файлы, подпапки и все что есть в этой папке и сама папка НЕудалялись. Помогите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 15:47:27 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Есть еще такой вариант выбора списка файлов: Код: plaintext Все что после "DO" - не срабатывает. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 15:50:39 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Придумал че-то новое ;) Подскажите, как удалить из файла строку, а то не могу найти :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 18:10:19 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Никто не помог, но я разобрался сам. Вдруг кому пригодится и поможет :) @forfiles /p c:\test\ /s /d -10 /c "cmd /c @echo @path >> c:\test.txt & echo @path" rem выбираем файлы и папки, которые удовлетворяют условию и записываем их в файл. @find /i /v "c:\test\test\bla" c:\test.txt >> c:\test2.txt rem в первом файле ищем все строки путей КРОМЕ тех, которые надо удалить и записываем их во второй файл. (это и есть исключение) @FOR /F "skip=2" %%i IN (c:\test2.txt) DO (@echo "%%~i" & del %%~i) rem из второго файла по циклу удаляем файлы и папки подставляя пути, оставшиеся во втором файле. Пользуйтесь на здоровье. :) НО помните! Удаленные таким способом файлы восстановить НЕ УДАСТСЯ! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 10:59:09 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Народ, помогите снова. Этот скрипт не будет работать с украинскими названиями папок и файлов. (и некоректно с русскими). Как это обойти или как реализовать эту задачу для любого языка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 14:30:41 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
АндрейчикНарод, помогите снова. Этот скрипт не будет работать с украинскими названиями папок и файлов. (и некоректно с русскими). Как это обойти или как реализовать эту задачу для любого языка? А если подставлять в кавычках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 14:44:35 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ, как именно в кавычках? тыкни пальцем в место в скрипте, пожалуйста, а то уже мозги кипят :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 17:49:22 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Также нашел готовый скрипт на WMI, проблема - удаляет файлы только в одной директории (которую указываешь при запуске скрипта). Как изменить функцию, чтобы она сканировала все папки и подпапки? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Ну и если можно, то чтобы исключалась конкретная папка и все что в ней от удаления. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 17:53:50 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Это процедура удаления файлов в папке, имя которой задано в параметре Но она не тронет вложенные папки. Здесь добавлен цикл по папкам: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Управлять удалением файла или папки должна функция CompareDate(folderspec & f1.name), которая проверяет полученное имя и разрешает удаление - возвращая true, либо запрещает его - возвращая false. Метод DeleteFolder удаляет папку со всем содержимым. Так что если и во вложенных папках надо что то оставлять, то смотри в сторону рекурсии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2009, 06:31:29 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
golsaМетод DeleteFolder удаляет папку со всем содержимым. Так что если и во вложенных папках надо что то оставлять, то смотри в сторону рекурсии. Вот мне и необходимо рекурсивно проверять папку и все подпапки в ней, и удалять файлы как в корневой папке, так и в подпапках. Не поможешь осуществить данный скрипт? а то я в этом языке скриптов пока новичек. (вопросик: а это средство работает с любыми языками? русские и украинские папки и файлы оно тоже удалит? и если в именах пробелы например, тоже сработает?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2009, 09:00:55 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Разобрался. Все сделал. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 10:49:48 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
1. Народ, дополнительные условия выяснились. как удалять скрытые, системные, только для чтения, вобщем как проверять атрибуты, менять их на нормальные и удалять потом? 2. Как указать несколько папок для исключения удаления? Как в переменной указать несколько, например тут: [code}objpath = "D:\папка-исключение\" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 16:15:20 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Андрейчик1. Народ, дополнительные условия выяснились. как удалять скрытые, системные, только для чтения, вобщем как проверять атрибуты, менять их на нормальные и удалять потом? 2. Как указать несколько папок для исключения удаления? Как в переменной указать несколько, например тут: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 16:15:58 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Андрейчик1. Народ, дополнительные условия выяснились. как удалять скрытые, системные, только для чтения, вобщем как проверять атрибуты, менять их на нормальные и удалять потом? Для удаления проверять не надо, надо сразу назначать аттрибуты, функция attrib, потом не гляда удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 16:17:35 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Anatoly Podgoretsky, Да, спасибо, я уже это нашел :) Остается актуальным второй вопрос. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 17:22:56 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Андрейчик 2. Как указать несколько папок для исключения удаления? Как в переменной указать несколько, например тут: Код: plaintext Вобщем если словами изложить мысль, то примерно она звучит так: Из конкретной папки очищаем пустые папки (или ненужные файлы и папки). Но! Есть пара-тройка папок которые надо исключить из очистки. Как это сделать? Например с одной папкой я проверял так: если путь данной папки не равен пути папки-исключения, то продолжаем очистку. Иначе - переходим к следующей папке. Задача: если путь данной папки имеется в массиве папок-исключений - переходим к следующей, если не входит в массив - очищаем папку. Если вопрос не понятен, напишите - изложу еще подробнее :) Заранее спасибо за помощь. Вот мой скрипт: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2009, 17:59:46 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Папки можно занести в objpath заканчивая каждую знаком запрещенным в path (например *?$), и вместо сравнения использовать поиск подстроки в строке. Для получения такой строки можно использовать функцию Join(list[, delim]) , которая возвращает строку, полученную в результате конкатенации подстрок, содержащихся в массиве list. Параметр delim задаёт символ разделителя (по умолчанию - пробел). Например так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 06:52:23 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
golsaНапример так: Код: plaintext 1. Не могли бы Вы пояснить эту строку просто словами, я не могу понять смысл кода. :( Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 09:11:18 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. Вот у меня такой скрипт. Почему то при выполнении происходит одна итерация и выдает ошибку: "Путь не найден". Строка 7. Кто может подсказать, где в срипте бок? Экспериментально обнаружил, что рекурсивно доходит до последней папки. Если она пустая - удаляет ее. Подниматся на уровень вышеи и тут выскакивает эта ошибка. Почему? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 13:51:35 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
проблема все еще актуальна :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 11:48:24 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Рекурсия - это когда при возврате на предыдущий уровень восстанавливаются значения всех переменных. У вас на всех уровнях используются одни и те же переменные. Поэтому движение у вас одностороннее - возвращаться то не куда. Используйте команду: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 15:27:22 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
golsaРекурсия - это когда при возврате на предыдущий уровень восстанавливаются значения всех переменных. У вас на всех уровнях используются одни и те же переменные. Поэтому движение у вас одностороннее - возвращаться то не куда. Используйте команду: Код: plaintext Спасибо за такой вариант :) Но перед написанием этого, у меня был скрипт простой, в батнике. Обычные команды командной строки с записью списка содержимого папок в файл, и дальнейшее его считывание. Но во-первых: при работе с командной строкой не считываются папки на украинском языке. ДОС просто не понимает его символы ;) следовательно при отработке скрипта возникает ошибка получения названия папки (она видется иероглифами). Во-вторых: решение задачи таким примитивным способом руководству не понравилось. :) вот и пришлось изучать VBScript. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 09:08:48 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Вот выкдадываю свой окончательный вариант скрипта (с рекурсией). Вдруг кому понадобиться ;) Удаление старых файлов и пустых папок. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 09:16:28 |
|
||
|
скрипт выборочного удаления файлов
|
|||
|---|---|---|---|
|
#18+
Я вообще мало чо понимаю. Я прочитал вашу тему и не смог найти ответ свой вопрос (( Помогите. Мне надо написать легкий cmd скрипт на удаление. Мне нужен скрипт на то что бы удалить папки и файлы в папке c:\111 . И файл в которой бы я записал определенные пути папок и файлов которые бы остались в c:\111 после зачистки. Скрипт на удаление я создал вот так: pushd c:\pavel rd /s /q . popd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2009, 16:02:51 |
|
||
|
|

start [/forum/topic.php?fid=26&fpage=222&tid=1500767]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 439ms |

| 0 / 0 |
