bat批处理问题

我想用bat改变文件夹的属性,即attrib +a +s +r +h c:\AAA.
如果此文件夹下还有子文件夹BBB,CCC。之下还有子文件夹。。。。。
请问如何批量处理?
另,我想学批处理,哪里有好点的教程?

第1个回答  2013-03-19
如果你要改变c:\aaa及其以下所有文件和文件夹属性,可用上面用户ID:jlyzlzb举的那个例子。
如果你要改变c:\aaa及其以下所有文件夹的属性,用以下(复制-粘贴,按段落排版好,保存为扩展名为bat的文件):
@echo off
set "att_path=c:\aaa"
cd /d %att_path% 2>nul||(echo 没有%att_path%目录&pause&goto :eof)
echo 开始设置%att_path%及其子目录属性+h +s +r
for /d /r %%a in (.) do attrib +h +s +r %%a
echo 设置完成。按任意键取消所设属性,按CTRL+C,y退出。
pause>nul
for /d /r %%a in (.) do attrib -h -s -r %%a
exit /b
rem 代码至上一行结束
学批处理可到http://bbs.bathome.net/追问

大哥,我不知道哪里错了。。。。

追答

看下我回答的第二行,从运行窗口看,你明显有改动或者没按上面格式排版。

第2个回答  2013-03-19
你好,一般来说,你隐藏了父级文件夹,那么就看不到父级文件夹了,里面的子文件夹和文件当然也就看不到了。所以,即使你加了命令开关 /S /D 都没办法隐藏子文件夹和文件。

1.Attrib +R +A +S +H c:\AAA 只能更改 AAA文件夹的属性

2.Attrib /S /D +R +A +S +H c:\AAA 只能更改 AAA文件夹的属性

3.Attrib /S /D +R +A +S +H c:\AAA\* 可以更改 AAA文件夹中所有子文件夹和文件的属性

综上,可以选择第一种方案或第二种,即可隐藏。如果你非要固执地想把所有文件夹和文件的属性都更改掉,那么你可以先执行第三种方案,再执行第一或第二种方案。

例如:
Attrib /S /D +R +A +S +H c:\AAA\* & Attrib /S /D +R +A +S +H c:\AAA

这样,一句话就搞定了你的需求。本回答被提问者采纳
第3个回答  2013-03-19
既然想学批处理并想看教程,首先就应该看cmd下的 attrib/? 中的/s /d 分别是什么意思,看不懂的复杂命令再找教程
相似回答