BATCH скрипт удаления данных с определенного диска - PullRequest
0 голосов
/ 24 ноября 2018

В университете у меня есть задача написать скрипт, который будет удалять файлы с выбранной флешки.Часть хитрости: диск должен быть определен путем добавления буквы после имени скрипта - например, «script.bat D» <- Удаление файлов из D. Мне удалось написать скрипт, который будет удалять файлы с определенного диска, но я неЯ не знаю, как проверить, является ли определенный диск USB или нет.Может ли кто-нибудь помочь мне с этим? </p>

Мой код:

    @echo off
set zew=""
for /f "tokens=1-5" %%a in (
 'wmic logicaldisk list brief'
) do if %%b Equ 2 if %%d gtr 0 Set zew=!zew! %%a

if %1=="" goto :BLAD
setlocal enabledelayedexpansion
Set USB=%1
if %1 NEQ %zew% goto :BLAD
if not exist %USB%:\ goto :BLAD
if %USB% EQU C goto BLAD
cd /D %USB%:
del * /S /F /Q
rmdir /S /Q %USB%:
echo Files deleted
goto :END

:BLAD
echo The was an error
goto :END

:END
echo Success
pause

1 Ответ

0 голосов
/ 26 ноября 2018

Вот непроверенная модификация примера, который я привел в моем предыдущем ответе:

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set "_I=%~1"
If Not Defined _I (Echo= No input parameter provided.
    Echo= Exiting . . . & Timeout 3 /NoBreak>Nul & Exit /B)
Mountvol|Find /I "%_I:~,1%:\">Nul && (Set "_I=%_I:~,1%") || (
    Echo= Invalid parameter provided.
    Echo= Exiting . . . & Timeout 3 /NoBreak>Nul & Exit /B)
For /F "Skip=2 Tokens=*" %%A In ('WMIC DiskDrive Where InterfaceType^="USB"^
 Assoc /AssocClass:Win32_DiskDriveToDiskPartition 2^>Nul') Do (
    For /F UseBackQ^ Delims^=^"^ Tokens^=2 %%B In ('%%A') Do (
        For /F Delims^=^":^ Tokens^=6 %%C In (
            'WMIC Path Win32_LogicalDiskToPartition^|Find "%%B"') Do (
                If /I "%%C"=="%_I%" GoTo :Task)))
Echo= %_I%: is not a connected USB drive.
>Nul Timeout 5
Exit/B
:Task
Choice /C YN /T 15 /D N /M "Do you want to delete all files from %_I%:"
If ErrorLevel 2 Exit /B
CD /D %_I%:
(   Del /A/F/Q *
    RD /S /Q *)>Nul 2>&1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...