Пакетный скрипт, используемый для удаления всех файлов и папок на диске ученика (G) - PullRequest
1 голос
/ 03 октября 2019

Здравствуйте, это мой первый пост, так что здесь ничего не идет. В настоящее время я работаю над задачей с руководителем, где он хочет, чтобы я создал пакетный сценарий, который извлекает все содержимое на диске ученика (G). Когда я запускаю эту команду, она только удаляет файлы. Папки и приложения вообще не удаляются.

Это то, что я вставил в мой скрипт .bat

forfiles -p "G:\" -s -m *.* /D -0 /C "cmd /c del @path"

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Как насчет просто сделать:

rd G:\. /S /Q

Вы также можете pushd в dir и затем просто удалить, используя оператор &&, чтобы убедиться, что команда pushd завершена до выполнения rd команда.

pushd G:\ && rd . /S /Q
0 голосов
/ 03 октября 2019

Panchu.

В CMD вы должны использовать команду RD (RMDIR), чтобы полностью удалить папку и все файлы под ней.

Однако вам все равно придется удалитьсами файлы, находящиеся в G: \ Drive, так как вы не можете удалить папку там.

Это должно сделать необходимое:

@(SETLOCAL
  ECHO OFF
  SET "_Path=G:\"
)

REM Delete all Subdirectories and their File Contents
FOR /F "delims=:" %%_ IN ('
  dir /B /A:D "%_Path%*" ') do (
  RD /S /Q "%_Path%%%_\")

REM Delete all files in Root Folder:
DEL /F /Q  "%_Path%*" & DEL /F /Q /A:H "%_Path%*"

Как отметил Mofi, скрытые каталоги не отображаютсяпо умолчанию, поэтому мне пришлось либо запустить два цикла, либо использовать цикл For, так как он поднял вопрос о каталогах с начальным или конечным интервалом, я изменил вместо этого DIR и проанализировал его с циклом FOR / F вместо FOR /D Однако, если у вас нет этих требований, это все пух.

Примечание для удаления файлов с конечными пробелами DEL выполняет свою работу.

Пример попыткиУдалить скрытые / системные / только для чтения каталоги - они работают (конечно, если вы находитесь в командной строке с повышенными правами)

C:\Admin>MD D:\Hidden

C:\Admin>MD D:\System

C:\Admin>MD D:\ReadOnly

C:\Admin>Attrib +H D:\Hidden

C:\Admin>Attrib +S D:\System

C:\Admin>Attrib +R D:\ReadOnly

C:\Admin>for /D %A IN (D:\*) DO @(ECHO.%A)
D:\DCIM
D:\temp
D:\srtFtpLogs
D:\srtFtpData
D:\Bkp
D:\System
D:\ReadOnly

C:\Admin>attrib D:\Hidden
    H        D:\Hidden

C:\Admin>attrib D:\System
   S         D:\System

C:\Admin>attrib D:\ReadOnly
     R       D:\ReadOnly

C:\Admin>RD /S /Q D:\ReadOnly

C:\Admin>RD /S /Q D:\System

C:\Admin>RD /S /Q D:\Hidden

C:\Admin>attrib D:\ReadOnly
File not found - D:\ReadOnly

C:\Admin>attrib D:\System
File not found - D:\System

C:\Admin>attrib D:\ReadOnly
File not found - D:\ReadOnly
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...