Board logo

标题: [文件操作] 【已解决】批处理命令attrib显示文件属性怎样写? [打印本页]

作者: comicguests    时间: 2014-2-12 14:29     标题: 【已解决】批处理命令attrib显示文件属性怎样写?

本帖最后由 comicguests 于 2014-2-13 03:08 编辑

最近看到CrLf关于显示某文件是否为隐藏文件的代码,试着改一下能否显示其他属性,失败...
请教各位前辈,怎样改才能显示其他属性?  asrh啥的
  1. @echo off
  2. attrib a.txt|findstr "^....H"&&set "hide="||set "hide=非"
  3. echo a.txt %hide%隐藏
  4. pause
复制代码

作者: DAIC    时间: 2014-2-12 15:46

c:\Test>attrib +r +h a.txt

c:\Test>attrib a.txt
A   HR       C:\Test\a.txt
作者: ivor    时间: 2014-2-12 15:49

本帖最后由 ivor 于 2014-2-12 15:50 编辑
  1. @echo off
  2. attrib a.txt|findstr "^....H">nul&&echo,隐藏 || echo,非隐藏
  3. attrib a.txt|findstr "^A">nul&&echo,存档 || echo,非存档
  4. attrib a.txt|findstr "^...S">nul&&echo,系统 || echo,非系统
  5. attrib a.txt|findstr "^.....R">nul&&echo,只读 || echo,非只读
  6. attrib a.txt|findstr "^........I">nul&&echo,无索引 || echo,索引文件
  7. pause
复制代码
这样会好看一些
作者: DAIC    时间: 2014-2-12 15:55

回复 3# ivor


    执行一次 attrib 命令就够了吧,把结果保存在变量里面。
作者: ivor    时间: 2014-2-12 21:40

回复 4# DAIC

@echo off
echo %time%
set a = attrib a.txt
echo %a%|findstr "^....H">nul&&echo,隐藏 || echo,非隐藏
echo %a%|findstr "^A">nul&&echo,存档 || echo,非存档
echo %a%|findstr "^...S">nul&&echo,系统 || echo,非系统
echo %a%|findstr "^.....R">nul&&echo,只读 || echo,非只读
echo %a%|findstr "^........I">nul&&echo,无索引 || echo,索引文件
echo %time%
attrib a.txt|findstr "^....H">nul&&echo,隐藏 || echo,非隐藏
attrib a.txt|findstr "^A">nul&&echo,存档 || echo,非存档
attrib a.txt|findstr "^...S">nul&&echo,系统 || echo,非系统
attrib a.txt|findstr "^.....R">nul&&echo,只读 || echo,非只读
attrib a.txt|findstr "^........I">nul&&echo,无索引 || echo,索引文件
echo %time%
pause

    测试了一下还是不用变量来的快
作者: DAIC    时间: 2014-2-12 22:36

回复 5# ivor


    我的意思是把attrib命令执行的结果保存到变量里面,不是把这个命令本身保存到变量。
作者: comicguests    时间: 2014-2-13 10:07

感谢各位的回复,学习了!原来是点数的差别...
作者: aaboy    时间: 2014-2-15 09:05

请问一下,^....是代表空格吗?能不能详细说明一下^的用法,先谢谢了
作者: edisong    时间: 2014-2-15 23:59

【转】一般而言,^以转义字符的身份出现。因为在 cmd环境中,有些字符具备特殊功能,如>、>>表示重定向,|表示管道,&、&&、||表示语句连接……它们都有特定的功能,如果需要把它们作为字符输出的话,echo >、echo | ……之类的写法就会出错——cmd解释器会把它们作为具有特殊功能的字符对待,而不会作为普通字符处理,这个时候,就需要对这些特殊字符做转义处理:在每个特殊字符前加上转义字符^,因此,要输出这些特殊字符,就需要用 echo ^>、echo ^|、echo ^|^|、echo ^^……之类的格式来处理。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2