本来不太想写这样的东东,但有人问到了,就说一下:http://bbs.bathome.net/thread-10605-1-1.html
D:\calc.exe为测试用程序
条件:
- 操作系统至少是 Windows XP SP2 ;
- 文件系统必须是 NTFS
方法1: | @echo off | | (echo [ZoneTransfer]&echo ZoneId=3)>"D:\calc.exe:Zone.Identifier"COPY |
方法2:
运行 notepad "D:\calc.exe:Zone.Identifier"
在打开的记事本中保存以下内容: | [ZoneTransfer] | | ZoneId=3COPY |
查看 :Zone.Identifier 内容 | @echo off | | for %%a in ("D:\calc.exe:Zone.Identifier") do echo 文件大小:%%~za | | for /f "usebackq" %%a in ("D:\calc.exe:Zone.Identifier") do echo %%a | | pauseCOPY |
当然,也可以运行 notepad "D:\calc.exe:Zone.Identifier" 查看。
说明:如果 :Zone.Identifier 内容非上面所指定内容,将造成 explorer 解析错误,并无法正常显示 :Zone.Identifier 以及无法右键属性解除
一般网上介绍查询该域识别对象需要使用第三方工具,例如 streams 或 lads ,但通过上面的示例我们可以知道,完全可以使用 for 来完成: | @echo off | | for /r "D:\" %%a in (*) do for %%b in ("%%a:Zone.Identifier") do if not "%%~zb"=="" echo %%a 存在 :Zone.Identifier | | pauseCOPY |
[ 本帖最后由 hanyeguxing 于 2011-1-5 10:02 编辑 ] |