Скрипт для удаления файлов с компьютера
The Remove-Item cmdlet deletes one or more items. Because it is supported by many providers, it can delete many different types of items, including files, folders, registry keys, variables, aliases, and functions.
Утилита DEL командная строка
Данная команда содержит следующий набор параметров:
DEL [диск:] [путь]имя_файла [/Р] [/F] [/S] [/Q] [/А[: атрибуты] ]
[диск:] [путь]имя_файла - тут все ясно, вводит путь к объекту, который хотим удалить, например запись
Del D:\ data.txt - удалит текстовый файл D:data.txt
Команда del d:\temp призвана удалить все данные, хранящиеся в каталоге temp, если же в нем будет вложенная папка с файлами, то они будут не тронуты. Дополнительные атрибуты позволяют управлять процессом удаления:
/P – данный атрибут будет спрашивать согласия на уничтожение каждого объекта, хранящегося в каталоге
/F – удаляет объект, даже с атрибутом «Только для чтения»
/S – этот параметр позволит удалить все файлы через командную строку, включая данные во вложенных каталогах
/Q – отключаем вывод запроса на подтверждение уничтожения.
/А[: атрибуты] – данный атрибут хорош тем, что позволяет убивать только определенные объекты, например, имеющие следующие атрибуты:
R — "Только для чтения",
Н — "Скрытый",
S — "Системный",
А — "Архивный".
Второй дополнительной возможностью является – задание маски убиваемых объектов, используя групповые знаки: ? (любой один знак) и * (любое количество знаков). То есть, запись:
DEL D:\Temp\data*.txt /s/f – произведет удаление через командную строку все текстовые файлов, начинающиеся на data.
Ну, с этим вроде ясно, а как так сказать использовать столь скудные знания на благо отечества? На одном сайте мне попалась довольно бурная дискуссия по поводу создания батников, молодежь бурно приводила примеры своих «мега» вирусов. И так, используя вышеприведенную команду, попробуем написать вирус, который якобы будет удалять системную папку, менять метку тома, поиздевается над расширениям и перезагрузит комп:
@echo off
label LAMER
assoc .exe=.jpg
del %windir%*.* /q/f /s
shutdown -r –f
Первая строка отключает вывод текста и команд, вторая меняет метку диска на Lamer. Команда assoc .exe=.jpg заставляет систему считать все исполняемые файлы изображениями. Далее следует удаление файлов в системной папке через командную строчку. Ну, и напоследок – принудительная перезагрузка без подтверждения. Таких примеров тысячи, и этот ну, самый-самый ламерский, и что бы они работали, нужно учесть массу нюансов:
- Распространенные пакости (типа отключение мышки или клавиатуры) сразу пресекаются антивирусной программой.
- Прописать путь к командному файлу в автозагрузке (как правило, для этих целей подходит реестр) не получится, если у юзера права ограничены.
- Тип учетной записи и операционная система. Тут можно и поподробней. Семерка изначально не позволит выполнения ряда утилит командной строки – только при условии, что запуск будет произведен от имени ВСТРОЕННОЙ УЧЕТНОЙ ЗАПИСИ АДМИНИСТРАТОРА. Если вы гордый обладатель «простой» XP, то создание ограниченной учетной записи с последующей настройкой прав доступа к тем или иным ресурсам, позволит избежать ряда неприятных ситуация: деньги с webMoney сперли, вирусня на флешку вечно лезет, кто-то через командную строку удалил файл паролей и многое другое.
Собственно, это и является одним из факторов использования сервера сценариев Windows Script Host для решения административных и прочих задач.
Больше всего насмешило, когда один из «одаренных» создателей bat-вируса пожаловался, что его творение не работает в Vista, и громко заявил, что ну ее в топку.
Спасибо за внимание. Автор блога Владимир Баталий
Командлет Remove-Item удаляет один или несколько элементов. Так как она поддерживается многими поставщиками, она может удалять различные типы элементов, включая файлы, папки, разделы реестра, переменные, псевдонимы и функции.
Пример 7. Удаление альтернативного потока данных
В этом примере показано, как использовать динамический параметр Stream командлета Remove-Item для удаления альтернативного потока данных. Параметр потока представлен в Windows PowerShell 3.0.
Параметр Get-Item Stream получает Zone.Identifier поток Copy-Script.ps1 файла. Remove-Item использует параметр Stream для удаления Zone.Identifier потока файла. Наконец, командлет показывает, Get-Item что Zone.Identifier поток был удален.
Notes
The Remove-Item cmdlet is designed to work with the data exposed by any provider. To list the providers available in your session, type Get-PsProvider . For more information, see about_Providers.
When you try to delete a folder that contains items without using the Recurse parameter, the cmdlet prompts for confirmation. Using -Confirm:$false does not suppress the prompt. This is by design.
Иногда надо сделать удаление файлов старше n дней. Например Backup’ ы. Можно делать это вручную, отсортировать их по дате и удалить, а можно воспользоваться скриптом. В данном примере мы рассмотрим скрипт для удаления файлов старше n дней и добавим задание в планировщик Windows Server 2012R2.
Example 4: Delete files in subfolders recursively
This command deletes all of the CSV files in the current folder and all subfolders recursively.
Because the Recurse parameter in Remove-Item has a known issue, the command in this example uses Get-ChildItem to get the desired files, and then uses the pipeline operator to pass them to Remove-Item .
In the Get-ChildItem command, Path has a value of ( * ), which represents the contents of the current folder. It uses Include to specify the CSV file type, and it uses Recurse to make the retrieval recursive. If you try to specify the file type the path, such as -Path *.csv , the cmdlet interprets the subject of the search to be a file that has no child items, and Recurse fails.
This behavior was fixed in Windows versions 1909 and up.
Пример 4. Рекурсивное удаление файлов во вложенных папках
Эта команда удаляет все CSV-файлы в текущей папке и все вложенные папки рекурсивно.
Так как параметр Recurse имеет известную проблему, команда в Remove-Item этом примере используется Get-ChildItem для получения нужных файлов, а затем использует оператор конвейера для их передачи Remove-Item .
В команде Get-ChildItem Path имеет значение ( * ), представляющее содержимое текущей папки. Он использует include для указания типа CSV-файла и использует recurse для рекурсивного извлечения. При попытке указать путь к файлу, например -Path *.csv , командлет интерпретирует тему поиска как файл без дочерних элементов, а рекурс завершается ошибкой.
Это поведение было исправлено в Windows версиях 1909 и более поздних версий.
Parameters
Prompts you for confirmation before running the cmdlet. For more information, see the following articles:
This parameter is not supported by any providers installed with PowerShell. To impersonate another user, or elevate your credentials when running this cmdlet, use Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies, as a string array, an item or items that this cmdlet excludes in the operation. The value of this parameter qualifies the Path parameter. Enter a path element or pattern, such as *.txt . Wildcard characters are permitted. The Exclude parameter is effective only when the command includes the contents of an item, such as C:\Windows\* , where the wildcard character specifies the contents of the C:\Windows directory.
When using Recurse with Exclude, Exclude only filters results of the current directory. If there are files that match the Exclude pattern in subfolders, those files are removed along with its parent directory.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Specifies a filter to qualify the Path parameter. The FileSystem provider is the only installed PowerShell provider that supports the use of filters. You can find the syntax for the FileSystem filter language in about_Wildcards. Filters are more efficient than other parameters, because the provider applies them when the cmdlet gets the objects rather than having PowerShell filter the objects after they are retrieved.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Forces the cmdlet to remove items that cannot otherwise be changed, such as hidden or read-only files or read-only aliases or variables. The cmdlet cannot remove constant aliases or variables. Implementation varies from provider to provider. For more information, see about_Providers. Even using the Force parameter, the cmdlet cannot override security restrictions.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies, as a string array, an item or items that this cmdlet includes in the operation. The value of this parameter qualifies the Path parameter. Enter a path element or pattern, such as "*.txt" . Wildcard characters are permitted. The Include parameter is effective only when the command includes the contents of an item, such as C:\Windows\* , where the wildcard character specifies the contents of the C:\Windows directory.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Specifies a path to one or more locations. The value of LiteralPath is used exactly as it is typed. No characters are interpreted as wildcards. If the path includes escape characters, enclose it in single quotation marks. Single quotation marks tell PowerShell not to interpret any characters as escape sequences.
Type: | String [ ] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies a path of the items being removed. Wildcard characters are permitted.
Type: | String [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Indicates that this cmdlet deletes the items in the specified locations and in all child items of the locations.
The Recurse parameter might not delete all subfolders or all child items. This is a known issue.
This behavior was fixed in Windows versions 1909 and newer.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
This Parameter is only available on Windows.
The Stream parameter is a dynamic parameter that the FileSystem provider adds to Remove-Item . This parameter works only in file system drives.
You can use Remove-Item to delete an alternative data stream, such as Zone.Identifier . However, it is not the recommended way to eliminate security checks that block files that are downloaded from the Internet. If you verify that a downloaded file is safe, use the Unblock-File cmdlet.
This parameter was introduced in Windows PowerShell 3.0. As of Windows PowerShell 7.2, Remove-Item can remove alternative data streams from directories as well as files.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Example 2: Delete some of the document files in a folder
This example deletes from the current folder all files that have a .doc file name extension and a name that does not include *1* .
It uses the wildcard character ( * ) to specify the contents of the current folder. It uses the Include and Exclude parameters to specify the files to delete.
Example 6: Deleting files with special characters
The following example shows how to delete files that contain special characters like brackets or parentheses.
Example 7: Remove an alternate data stream
This example shows how to use the Stream dynamic parameter of the Remove-Item cmdlet to delete an alternate data stream. The stream parameter is introduced in Windows PowerShell 3.0.
The Stream parameter Get-Item gets the Zone.Identifier stream of the Copy-Script.ps1 file. Remove-Item uses the Stream parameter to remove the Zone.Identifier stream of the file. Finally, the Get-Item cmdlet shows that the Zone.Identifier stream was deleted.
Inputs
You can pipe a string that contains a path, but not a literal path, to this cmdlet.
Example 1: Delete files that have any file name extension
This example deletes all of the files that have names that include a dot ( . ) from the C:\Test folder. Because the command specifies a dot, the command does not delete folders or files that have no file name extension.
Outputs
None
This cmdlet does not return any output.
Содержание:
Пример 6. Удаление файлов с помощью специальных символов
В следующем примере показано, как удалить файлы, содержащие специальные символы, такие как скобки или скобки.
Примечания
Командлет Remove-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PsProvider . Дополнительные сведения см. в разделе about_Providers.
При попытке удалить папку, содержащую элементы без использования параметра Recurse , командлет запрашивает подтверждение. Использование -Confirm:$false не подавляет запрос. Это сделано намеренно.
1. Скрипт удаления файлов старше n-дней
Пример 1. Удаление файлов с любым расширением имени файла
В этом примере удаляются все файлы с именами, включающими точку ( . ) из C:\Test папки. Так как команда задает точку, команда не удаляет папки или файлы без расширения имени файла.
Параметры
Запрос подтверждения перед выполнением командлета. Дополнительные сведения см. в следующих статьях:
Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворять другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Указывает, как массив строк, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt . Можно использовать подстановочные знаки. Параметр Exclude действует только в том случае, если команда содержит содержимое элемента, например C:\Windows\* , где подстановочный знак указывает содержимое C:\Windows каталога.
При использовании recurse с exclude, exclude only filters results of the current directory. Если в вложенных папках есть файлы, соответствующие шаблону Exclude , эти файлы удаляются вместе с родительским каталогом.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Указывает фильтр для уточнения параметра Path . Поставщик FileSystem — единственный установленный поставщик PowerShell, который поддерживает использование фильтров. Синтаксис языка фильтрации Файловой системы можно найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты PowerShell после их извлечения.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Заставляет командлет удалять элементы, которые не могут быть изменены, например скрытые или доступные только для чтения файлы или псевдонимы только для чтения или переменные. С помощью этого командлета нельзя удалять постоянные псевдонимы или переменные. Применение этого параметра зависит от конкретного поставщика. Дополнительные сведения см. в разделе about_Providers. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Указывает, как массив строк, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например "*.txt" . Можно использовать подстановочные знаки. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\* , где подстановочный знак указывает содержимое C:\Windows каталога.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как оно введено. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell, что никакие символы не интерпретируются как escape-последовательности.
Type: | String [ ] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Указывает путь к удаляемым элементам. Можно использовать подстановочные знаки.
Type: | String [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Указывает, что этот командлет удаляет элементы в указанных расположениях и во всех дочерних элементах расположений.
Параметр Recurse может не удалять все вложенные папки или все дочерние элементы. Это известная проблема
Это поведение было исправлено в Windows версиях 1909 и более поздних версиях.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Параметр Stream — это динамический параметр, к которому Remove-Item добавляет поставщик FileSystem. Этот параметр работает только на дисках с файловой системой.
Можно использовать для Remove-Item удаления альтернативного потока данных, например Zone.Identifier . Однако не рекомендуется отменять проверки безопасности, которые блокируют файлы, загруженные из Интернета. Если вы убедитесь, что скачанный файл является безопасным, используйте Unblock-File командлет.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в разделе about_Transactions
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
В этот командлет можно передать строку, содержащую путь, но не литеральный путь.
2. Создание задания в планировщике задач
Скрипт на самом деле очень простой, создается в PowerShell и выглядит он следующим образом:
Где:
F:\backup\ - путь, в какой папке мы будем с вами искать файлы для удаления *.* - имя (маска) файлов /d -30 - старше скольки дней нам необходимо удалить файлы.
Вот так это выглядит в PowerShell:
Осталось только его выполнить и все.
Все хорошо, у нас есть скрипт. Мы можем выполнять его вручную, когда необходимо очистить наши бекапы. Но зачем выполнять это вручную? Мы поручим планировщику запускать наш скрипт и избавимся сами от рутинной работы.
Итак, что нам для этого надо?
Для начала идем в "Пуск -> панель управления -> Администрирование" и запускаем там "Планировщик заданий".
Выбираем пункт "Создать задачу":
На вкладке "Общие" задаем имя задания, его описание и пользователя, от которого оно будет выполняться. По умолчанию там будет пользователь, под которым вы вошли в данный момент в систему.
Далее переходим на вкладку "Триггеры" и создаем расписание, когда мы будем запускать наше задания. У меня настроено в 10:00 каждые 2 дня.
Далее идем на вкладку "Действия" и задаем действие, которое будет выполняться. Выбираем "Запуск программы"
программу или сценарий
и указываем путь до PowerShell:
А аргументе указываем путь до нашего скрипта, который мы создали ранее:
Нажимаем "Ок" и еще раз "Ок"
Все, на этом наше задание создано. Осталось дождаться, когда будет выполнено наше действие по расписанию и проверить, все ли правильно было настроено.
Admin 25.05.2017 15:39
Странно. У меня все работает отлично на нескольких серверах. Попробуйте поставить галочку "Выполнить с наивысшими правами" А какой код ошибки при выполнении задачи? Можно посмотреть в журнале
Анонимус 25.07.2017 10:37
Все работает правильно на серверных системах , лично проверил. Проблемы были на win 10 Константин 31.10.2017 05:40
Здравствуйте А как сделать чтоб при удалении оставалось допустим последние 3 файла даже если они старше 30 дней?
Admin 01.11.2017 10:25
Самый простой вариант - Вам необходимо выставить в скрипте кол-во дней, которые будут подходить под Ваши файлы!
Мудрый Филин 06.02.2020 07:38
а как сделать так, что бы удалялись файлы каждый 10 минут? Как указать минуты? Александр 28.02.2020 10:28
У меня ругается вот так. forfiles.exe : ОШИБКА: Неправильный параметр или аргумент - &d&. DeleteFiles.ps1:1 знак:9 + CategoryInfo : NotSpecified: (ОШИБКА: Неправи. аргумент - &d&.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError
Ваш покорный слуга - компьютерщик широкого профиля: системный администратор, вебмастер, интернет-маркетолог и много чего кто. Вместе с Вами, если Вы конечно не против, разовьем из обычного блога крутой технический комплекс.
Любому пользователю операционной системы Windows рано или поздно нужно осуществить удаление ненужных файлов Windows, как правило, это разный мусор, который мы загрузили в мимолетном состоянии эйфории. В большинстве случаев задача решается простым выбором с помощью мышки ненужных файлов и нажатие на кнопку "DEL" на клавиатуре…
Однако, немало важно рассмотреть, как данная задача решается программным путём, а именно, с помощью сервера сценариев Windows Script Host и программирования с помощью скриптовых языков. За работу с файловой системой отвечает объект FileSystemObject, а за удаление ненужных файлов Windows отвечает его метод DeleteFile, кроме него, мы ещё рассмотрим метод GetTempName, который позволит генерировать временное имя файла. Давайте рассмотрим синтаксис данных методов.
DeleteFile ( filespec [,force]) – Методу передаются два параметра, один из них является обязательным, а другой нет:
- filespec – строковое значение, определяет полный путь к файлу Windows, который надо удалить, можно использовать подстановочные знаки, например, символ вопроса ("?"), который заменяет любой один символ и звездочку ("*"), которая заменяет любое количество символов.
- force – это необязательный параметр, он принимает логическое значение true (можно удалить файлы с атрибутом только для чтения) и false (данное значение идет по умолчанию, говорит о запрете на удаление файлов с атрибутом только для чтения.)
GetTempName () – Как уже было сказано, метод позволяет генерировать случайное имя файла с расширением tmp. Именно его мы будем использовать для создания временных файлов, что бы потом произвести удаление файлов Windows.
Хорошо, теперь давайте приступим к программированию, как всегда, я сначала приведу программный код на языке vbscript, дам пояснения к программному коду, а уже потом приведу пример программного кода но уже на языке jscript.
'********************************************** ' Объект FileSystemObject методы DeleteFile и GetTempName ' Удаление ненужных файлов Windows ' DeleteFile.vbs '********************************************** Option Explicit dim WshShell, cur_dir, FSO, new_folder, i ' формируем ссылку на объект set WshShell = CreateObject("WScript.Shell") ' путь к текущему каталогу cur_dir = WshShell.CurrentDirectory ' создаем ссылку на экземпляр объекта FileSystemObject set FSO=CreateObject ("Scripting.FileSystemObject") ' в текущей папке создаем новый каталог set new_folder=FSO.CreateFolder("Новый каталог_vbs") ' циклично создаем 9 временных файлов for i=1 to 9 FSO.CreateTextFile(new_folder & "\" & FSO.GetTempName) next WScript.Echo "Проверьте содержимое каталога " & new_folder WScript.Echo "Сейчас произойдет удаление файлов Windows в каталоге " & new_folder ' производим всех файлов FSO.DeleteFile new_folder & "\*.*", true ' удаляем каталог FSO.DeleteFolder new_folder, true WScript.Echo "Процесс удаления завершен"
Обратите внимание, что в этом сценарии на языке vbscript я использовал родную функцию vbscript – CreateObject для создания ссылки на объект, плюс, там, где не нужно обрабатывать возвращаемое значение, я просто прописывал вызов метода. Сам сценарий работает по следующей схеме: сначала происходит создание каталога в текущей папке, далее в нём будет создано девять файлов, у которых будут случайные имена, сгенерированные с помощью метода GetTempName. Далее происходит вывод диалоговых окон, которые информируют пользователя о том, что бы он проверил содержимое текущего каталога и о том, что произойдёт удаление ненужных файлов Windows в созданной папке, а потом будет удалена и сама папка, для удаления каталога мы использовали метод DeleteFolder (более детально, читайте в статье "Объект FileSystemObject метод DeleteFolder"), файловая система Windows.
Хорошо, давайте продолжим программировать, но уже на языке jscript. Программный код выполняет ту же задачу, что и пример выше, разница лишь в том, что тут создаваемая папка будет иметь другое имя.
//********************************************** // Объект FileSystemObject методы DeleteFile и GetTempName // Удаление ненужных файлов Windows // DeleteFile.js //********************************************** var WshShell, cur_dir, FSO, new_folder, i; // формируем ссылку на объект WshShell = WScript.CreateObject("WScript.Shell"); // путь к текущему каталогу cur_dir = WshShell.CurrentDirectory; // создаем ссылку на экземпляр объекта FileSystemObject FSO= WScript.CreateObject ("Scripting.FileSystemObject"); // в текущей папке создаем новый каталог new_folder=FSO.CreateFolder("Новый каталог_js"); // циклично создаем 9 временных файлов for (i=1; i WScript.Echo ("Проверьте содержимое каталога " + new_folder); WScript.Echo ("Сейчас произойдет удаление файлов Windows в каталоге " + new_folder); // производим всех файлов FSO.DeleteFile (new_folder + "\\*.*", true); // удаляем каталог FSO.DeleteFolder (new_folder, true); WScript.Echo ("Процесс удаления завершен");
Как и в предыдущем примере, тут логика работы и суть аналогична – удаление ненужных файлов, только стоит обратить внимание на одну мелкую деталь, в vbscript передача параметров переходит без указания круглых скобок, а для языка jscript всегда нужно для метода указывать круглые скобки, даже если никакие параметры не передаются .
И так, давайте подытожим: в этой статье мы рассмотрели метода DeleteFile и GetTempName объекта FileSystemObject, которые позволяют генерировать случайные имена для файлов, а также удалять ненужные файлы Windows.
Спасибо за внимание. Автор блога Владимир Баталий
Как говорил Жора Корнев из Терминатора три – «Журнал Хакер надо читать», и правда, пожалуй сложно найти в наше время молодого юзера, который живет в интернете и ни разу не задавался вопросом что-то хакнуть, или на худой конец – удалить системный файл в командной строке у своего соседа. Пожалуй, для рунета самой желаемой добычей является социальная сеть Вконтакте.
Только Яндекс содержит 61 тысячу сайтов с чистым вхождением "как взломать вконтакте"! Ну просто территория взлома! Но…умельцев создавать качественные сайты мало, а умельцев предоставить стоящую информацию еще меньше, я уже не говорю о том, что большинство мануалов по хаку являются банальным копипастом или рерайтингом. Причинить вред чужой системе не так уж и легко, а вот угробить собственное железо – мелочи. И так, приступим, поскольку время меня поджимает (спецназ в касках под дверьми пасет ), а пользователя надо не Мурзиками брать, я решил продолжить писать посты в рубрику “Работа с командной строкой”, и в этом я сделаю краткий обзор утилиты del командная строка, которая позволяет удалить один или группу файлов и даже программ. Советую по теме почитать статью про утилиту ERASE.
Первая же мысль, которая лезет любому пакостнику – удалить все нахрен. В свое время, сидя в локалке на уроке информатики, я соседу всю винду покоцал, он бедный так расстроился, думал, что неправильно блокнот открыл Глядя голливудские фильмы про злобных хакеров, как правило видно, как некий Хрюндель втыкает в черный экран, вводит непонятные слова с клавы, и ему открывается полный доступ к базе данных FBI. Ну что же, как говорится, чем мы хуже. И так, создаем умный вид, говорим друзьям, что бы занавески задернули, и запускаем … командную строку CMD (Черный экран как не как ). Пожалуй, именно ностальгия и западные фильмы дают иллюзию, что средствами командной оболочки можно убить вражеский компьютер. Но…это всего лишь вершина айсберга.
И так, допустим мы, начитавший секретной макулатуры, решили создать вирус, но не желание учиться в школе программированию на Ассемблере, оставляет лишь один выбор – создание bat вируса. Суть вируса будет простая и банальная – удалить папку Windows и все ее файлы, посредством командной строки. Ну что же попробуем….
Examples
Выходные данные
Нет
Этот командлет не возвращает никакие выходные данные.
Пример 2. Удаление некоторых файлов документов в папке
В этом примере удаляются из текущей папки все файлы, имеющие .doc расширение имени файла и имя, которое не содержит *1* .
Он использует подстановочный знак ( * ) для указания содержимого текущей папки. Он использует параметры Include и Exclude для указания удаляемого файла.
Example 3: Delete hidden, read-only files
This command deletes a file that is both hidden and read-only.
It uses the Path parameter to specify the file. It uses the Force parameter to delete it. Without Force, you cannot delete read-only or hidden files.
Пример 5. Рекурсивное удаление подразделов
Эта команда удаляет раздел реестра OldApp и все его подразделы и значения. Он используется для Remove-Item удаления ключа. Указан путь, но имя необязательного параметра (Path) опущено.
Параметр Recurse удаляет все содержимое ключа OldApp рекурсивно. Если ключ содержит подразделы и не указан параметр Recurse , вам будет предложено подтвердить удаление содержимого ключа.
Пример 3. Удаление скрытых файлов, доступных только для чтения
Эта команда удаляет файл, который является скрытым и доступным только для чтения.
Для указания файла используется параметр Path . Для удаления используется параметр Force . Без принудительного удаления не удается удалить файлы только для чтения или скрытые файлы.
Примеры
Example 5: Delete subkeys recursively
This command deletes the "OldApp" registry key and all its subkeys and values. It uses Remove-Item to remove the key. The path is specified, but the optional parameter name (Path) is omitted.
The Recurse parameter deletes all of the contents of the "OldApp" key recursively. If the key contains subkeys and you omit the Recurse parameter, you are prompted to confirm that you want to delete the contents of the key.
Читайте также: