经过楼主的测试,发现3楼的代码对系统文件的操作无效。原因是如果文件夹同时具备系统和隐藏属性的时候,只修改隐藏属性会失败。修正后的代码如下。基本思想是:先把D盘下所有的带系统属性的文件夹去除系统和隐藏属性(不管是否具有),然后再恢复原有的系统属性,最后去掉所有文件夹的隐藏属性(不管是否具有)。
需要注意的是,如果要对D盘的所有文件夹进行操作的话,就只能放在其他分区任意目录或者D盘根目录下,放在D盘的其他目录下只对当前目录及其之下的子目录起作用:
@echo off
d:
for /r %%i in (.) do (
echo %%~ai|find "s">nul 2>nul && (
attrib -s -h "%%i">nul 2>nul) && (
attrib +s "%%i">nul 2>nul
)
)
)
for /r %%i in (.) do attrib -h "%%i">nul 2>nul
Last edited by namejm on 2006-6-19 at 14:38 ]