标题: [文件操作] 批处理怎么不能显示隐藏文件呢? [打印本页]
作者: goofy123 时间: 2009-12-26 14:39 标题: 批处理怎么不能显示隐藏文件呢?
- @echo off
- for %%i in (D E F G) do for /f "delims=" %%j in ('dir %%i:\ /a:h /b /n') do attrib -h -r /s "%%~nxj"
- pause
复制代码
运行过后,f:\test\test.word 文件还是隐藏的,郁闷哦。请大侠帮看看呀
[ 本帖最后由 goofy123 于 2009-12-26 16:33 编辑 ]
作者: Batcher 时间: 2009-12-26 15:19
把@echo off删除,再运行一遍,看看执行过程,自己先试试思考一下为什么。
作者: nerfg002 时间: 2009-12-26 15:20
你dir出来的是各个盘主目录下的文件 可以加上/S
而且dir也有问题 不要加/n 开关
建议先去掉echo off
作者: goofy123 时间: 2009-12-26 15:41
原帖由 goofy123 于 2009-12-26 14:39 发表
@echo off
for %%i in (D E F G) do for /f "delims=" %%j in ('dir %%i:\ /a:h /b /n') do attrib -h -r /s "%%~nxj"
pause
运行过后,f:\test\test.word 文件还是隐藏的,郁闷哦。请大侠帮看看呀
在1楼2楼的指点下,作出如下修改:
@echo off
for %%i in (D E F) do for /f "delims=" %%j in ('dir %%i:\ /a:h /b /s ') do attrib -h -r "%%j" /s /d
pause
我个人的理解是:
1 不能用"%%~nxj" 扩展,因为文件夹没有扩展名,双引号一定要加上。
2 /s /d 放在变量前或者变量后 没有关系把
3 有点不解的是:批处理运行界面弹出如下的提示:
未重设系统文件 - D:\装机软件\njmes\image\Thumbs.db
未重设系统文件 - E:\RECYCLER
未重设系统文件 - E:\System Volume Information
未重设系统文件 - E:\RECYCLER\S-1-5-21-682003330-484061587-1801674531-500
未重设系统文件 - E:\RECYCLER\S-1-5-21-682003330-484061587-1801674531-500\deskt
.ini
未重设系统文件 - F:\RECYCLER
有点疑惑
作者: Batcher 时间: 2009-12-26 15:44 标题: 回复 4楼 的帖子
- attrib D:\装机软件\njmes\image\Thumbs.db
复制代码
看看这个命令的结果,再试试自己思考一下为什么。
作者: neorobin 时间: 2009-12-26 15:48 标题: 回复 4楼 的帖子
去隐藏属性时, 最好是 -s -h -r 三个参数一起用- @echo off
- for %%i in (D E F) do for /f "delims=" %%j in ('dir %%i:\ /a:h /b /s ') do attrib -s -h -r "%%j" /s /d
- pause
复制代码
作者: goofy123 时间: 2009-12-26 16:09
原帖由 neorobin 于 2009-12-26 15:48 发表
去隐藏属性时, 最好是 -s -h -r 三个参数一起用@echo off
for %%i in (D E F) do for /f "delims=" %%j in ('dir %%i:\ /a:h /b /s ') do attrib -s -h -r "%%j" /s /d
pause
加了-s参数后,果然没有了那些提示,可是会出现另一些提示:
拒绝访问 - D:\System Volume Information
拒绝访问 - E:\System Volume Information
拒绝访问 - F:\System Volume Information
作者: goofy123 时间: 2009-12-26 16:20
原帖由 Batcher 于 2009-12-26 15:44 发表
attrib D:\装机软件\njmes\image\Thumbs.db看看这个命令的结果,再试试自己思考一下为什么。
恢复Batcher老大:
用attrib查看Thumbs.db的属性 发现是 : A SH D:\装机软件\njmes\image\Thumbs.db
attrib /? 里的说明
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
dir %%i:\ /a:h /a-s /a-a /b /s 我用了/a-s排除具有系统属性的文件
现在的代码如下:
- @echo off
- for %%i in (D E F) do for /f "delims=" %%j in ('dir %%i:\ /a:h /a-s /b /s ') do attrib -s -h -r "%%j" /s /d
- pause
复制代码
批处理只有左上角一个光标在闪,貌似没运行。
改成@echo on 运行时
C:\Documents and Settings\Administrator\桌面>for %i in (D E F) do for /F "delims
=" %j in ('dir %i:\ /a:h /a-s /b /s ') do attrib -s -h -r "%j" /s /d
C:\Documents and Settings\Administrator\桌面>for /F "delims=" %j in ('dir D:\ /a
:h /a-s /b /s ') do attrib -s -h -r "%j" /s /d
光标在这个地方一直跳动
作者: nerfg002 时间: 2009-12-26 16:53
文件夹没有扩展名也可以扩展 %~nx1得到的就是文件夹名称 如果只用 %~n1 如果文件夹中包含“.”符号则只返回最后一个.前面的部分
作者: neorobin 时间: 2009-12-26 17:12 标题: 回复 7楼 的帖子
System Volume Information
是系统还原保存备份数据的文件夹, 可以事先关闭系统还原服务
-
- rem 禁用和停止系统还原服务
- sc config srservice start= DISABLED
- sc stop srservice
复制代码
作者: neorobin 时间: 2009-12-26 17:22 标题: 回复 8楼 的帖子
/a:h /a-s 两个 /a 参数, 我想只会有后一个生效, 你可以合2为1 /ah-s- @echo off
- for %%i in (D E F) do for /f "delims=" %%j in ('dir %%i:\ /ah-s /b /s ') do attrib -s -h -r "%%j" /s /d
- pause
复制代码
作者: goofy123 时间: 2009-12-27 21:31
回11楼:
/a:h /a-s 两个 /a 参数, 我想只会有后一个生效, 你可以合2为1 /ah-s
确实,在这种情况下只有后一个命令会生效,谢谢你的建议哈,没想到还可以这么写哈。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |