attribコマンドを使用して、同じバッチファイルでフォルダーを非表示にしたり、再表示したりしようとしています

attribコマンドを使用して、同じバッチファイルでフォルダーを非表示にしたり、再表示したりしようとしています

attrib コマンドを使用してバッチ ファイルでフォルダーを非表示にしようとしています。また、同じバッチ ファイルでファイルを再表示したいと考えています。これを 1 つのバッチ ファイルで実行できますか? または、別のバッチ ファイルを呼び出す必要がありますか? また、これを可能にするにはどのようなコマンドを使用すればよいですか。よろしくお願いします。

これまでのところ私は

attrib +h +s Foldername

そして

attrib -h -s Foldername

しかし、非表示を解除するとすぐに再び非表示になるため、これは機能しません。

答え1

@echo off
Set /P Answer=Do you wish to hide File (Y/N)?
if /I {%ANSWER%}=={y} (goto :yes)
if /I {%ANSWER%}=={Y} (goto :yes)
if /I {%ANSWER%}=={n} (goto :no)
if /I {%ANSWER%}=={N} (goto :no)
:yes
attrib +h Foldername
pause
exit
:no
attrib -h Foldername
pause
exit

このバッチ ファイルでは、Y (はい) を選択した場合はファイルが非表示になり、N (いいえ) を選択した場合はファイルが再表示されます。元のバッチ ファイル。

答え2

私は次のように試しました:-

attrib +h +s tempFolder
pause
attrib -h -s tempFolder
pause

このバッチ ファイルを使用すると、フォルダーがそれに応じて非表示になったり表示されたりすることがわかります。

答え3

次のようなものが機能するはずです:

Set _Path=C:\foldername
For /F "Delims=" %%I In ('Attrib "%_Path%"') Do Set _Attribs=%%I
If "%_Attribs:~4,1%"=="H" (
  Attrib -S -H "%_Path%"
  Attrib /D /S -S -H "%_Path%"\*.*
) Else (
  Attrib +S +H "%_Path%"
  Attrib /D /S +S +H "%_Path%"\*.*
)

これはtechguys.orgから入手しました

答え4

cls
/@echo off
/title Folder Locker
/IF EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B303­­09D}" GOTO UNLOCK
/IF NOT EXIST Locker GOTO MDLOCKER
/echo Folder Created.
/:CONFIRM
/echo Are you sure you want to lock the folder? (Y/N)
/set/p "cho="
/IF %cho%==Y GOTO LOCK
/IF %cho%==y GOTO LOCK
/IF %cho%==N GOTO END
/IF %cho%==n GOTO END
/echo Invalid Choice.
/GOTO CONFIRM
/:LOCK
/ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B303­­09D}"
/attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B303­­09D}"
/echo Folder Locked.
/GOTO END

/:UNLOCK
/echo Enter password to unlock the Folder :
/set/p "pass="
/IF NOT %pass% == YourPassword GOTO FAIL
/attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B303­­09D}"
/ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B303­­09D}" LOCK
/echo Folder Unlocked Successfully.
/GOTO END
/:FAIL
/echo Invalid Password!
/GOTO END

/:MDLOCKER
/md Locker
/echo Folder created.

/GOTO END
/:END
/PAUSE

!!!!!重要!!!!
IF NOT %pass% == YourPassword GOTO FAIL とある箇所で、YOURPASSWORD を希望のパスワードに変更してください。"/" は Enter キーを押すことを示します。

関連情報