[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理命令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
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

c:\Test>attrib a.txt
A   HR       C:\Test\a.txt

TOP

本帖最后由 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
复制代码
这样会好看一些
1

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 3# ivor


    执行一次 attrib 命令就够了吧,把结果保存在变量里面。

TOP

回复 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

    测试了一下还是不用变量来的快
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 5# ivor


    我的意思是把attrib命令执行的结果保存到变量里面,不是把这个命令本身保存到变量。

TOP

感谢各位的回复,学习了!原来是点数的差别...

TOP

请问一下,^....是代表空格吗?能不能详细说明一下^的用法,先谢谢了

TOP

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

TOP

返回列表