Тестирование атрибутов папки с использованием .bat - PullRequest
0 голосов
/ 28 января 2020

Я использую код .bat для проверки атрибута папки, если его (Скрытый + Система) затем измените на (Не скрытый + Не системный). «MTD» - Папка

Код:

if attrib +h +s "MTD" attrib -h -s "MTD"

Спасибо

Ответы [ 2 ]

1 голос
/ 28 января 2020

REWRITE Благодаря @Compo и сообщению от dbenham ({ ссылка }), это полностью переписано. Он очень жестко задан для указания c позиций символов, что не очень хорошая идея.

Когда выяснится, что в правильных каталогах будут выполняться правильные команды ATTRIB, удалите echo из команда ATTRIB.

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

FOR /F "delims=" %%A IN ('DIR /B /A:H') DO (
    FOR /F "delims=" %%B in ("%%~aA") DO (
        SET ATTRS=%%~B
        if "!ATTRS:~0,1!" == "d" if "!ATTRS:~3,2!" == "hs" (
            echo ATTRIB -H -S %%~A
        )
    )
)

Это было бы гораздо лучше сделать в PowerShell. Для этого потребуется текущий PowerShell 5.x или выше. На самом деле ...

Get-ChildItem -Directory -Hidden -System |
    ForEach-Object {
        $_.Attributes -= 'Hidden'
        $_.Attributes -= 'System'
    }
0 голосов
/ 03 февраля 2020

Привет, Все, что я нашел решение

cls
@ECHO OFF

title Folder Locker

:CONFIRM
echo Are you sure u want to Lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto UNLOCK
if %cho%==N goto UNLOCK
echo Invalid choice.
goto CONFIRM

:LOCK

attrib +h +s "MTD"
echo Folder locked
goto End

:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%== 123 goto FAIL
attrib -h -s "MTD"

echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:End
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...