我正在尝试隐藏某个文件夹中的所有内容(文件夹中的一个文件除外),但不隐藏文件夹本身。这是我目前所做的。
@ECHO OFF
cls
title Hide everything but useful shortcuts and program files
attrib +h "%CD:~0,3%Fix It Files" /S /D
attrib -h "%CD:~0,3%Fix It Files\Program Files" /S /D
attrib -h "%CD:~0,3%Fix It Files\%CD:~0,1% Shortcuts" /S /D
attrib -h "%CD:~0,3%Fix It Files"
exit
我们在这里看到的是,我试图隐藏名为“Fix It Files”的文件夹以及批处理文件所在的驱动器中的所有内容。然后我取消隐藏两个我宁愿保持不隐藏的文件夹;一个我希望始终保持不隐藏,另一个取决于它所在的驱动器。然后我取消隐藏父文件夹“Fix It Files”。
至少,这是我的目标。问题是,虽然它隐藏了“Fix It Files”文件夹,后来又取消了隐藏,但里面的所有文件都保持未隐藏状态。
答案1
关键点似乎是首先递归地隐藏目标文件夹,最后一步取消隐藏它。
所以最好先隐藏一切里面文件夹及下方,仅显示想要的物品。
@ECHO OFF
cls
title Hide everything but useful shortcuts and program files
attrib +h "%CD:~0,3%Fix It Files\*" /S /D
attrib -h "%CD:~0,3%Fix It Files\Program Files" /S /D
attrib -h "%CD:~0,3%Fix It Files\%CD:~0,1% Shortcuts" /S /D
exit