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

[文件操作] [分享]批处理为可执行程序创建域识别对象文件

本来不太想写这样的东东,但有人问到了,就说一下:http://bbs.bathome.net/thread-10605-1-1.html
D:\calc.exe为测试用程序
条件:

  • 操作系统至少是 Windows XP SP2 ;
  • 文件系统必须是 NTFS

方法1:
  1. @echo off
  2. (echo [ZoneTransfer]&echo ZoneId=3)>"D:\calc.exe:Zone.Identifier"
复制代码
 

方法2:
运行 notepad "D:\calc.exe:Zone.Identifier"
在打开的记事本中保存以下内容:
  1. [ZoneTransfer]
  2. ZoneId=3
复制代码
 

查看 :Zone.Identifier 内容
  1. @echo off
  2. for %%a in ("D:\calc.exe:Zone.Identifier") do echo 文件大小:%%~za
  3. for /f "usebackq" %%a in ("D:\calc.exe:Zone.Identifier") do echo %%a
  4. pause
复制代码
 

当然,也可以运行 notepad "D:\calc.exe:Zone.Identifier" 查看。

说明:如果 :Zone.Identifier 内容非上面所指定内容,将造成 explorer 解析错误,并无法正常显示 :Zone.Identifier 以及无法右键属性解除


一般网上介绍查询该域识别对象需要使用第三方工具,例如 streams 或 lads ,但通过上面的示例我们可以知道,完全可以使用 for 来完成:
  1. @echo off
  2. for /r "D:\" %%a in (*) do for %%b in ("%%a:Zone.Identifier") do if not "%%~zb"=="" echo %%a 存在 :Zone.Identifier
  3. pause
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-5 10:02 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

回复 3楼 的帖子

域识别对象Zone.Identifier是交换数据流ADS中的一种
通过ADSs的特点,可以实现文件的隐藏:
  1. @echo off
  2. cd/d>"d:\测试.txt"
  3. type "e:\电影\让子弹飞.rmvb">"d:\测试.txt:让子弹飞.rmvb"
  4. pause
  5. start "" "d:\测试.txt:让子弹飞.rmvb"
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-5 22:48 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

这不是NTFS流文件么..
域识别是什么东西

TOP

批处理遍历文件夹(文件夹命名为日期和时间)拷贝文件

想让主bat文件可以遍历文件夹pic,找到在某段时间内的子文件夹(例如20091212 \1150\w\s1\(具体的图片文件)到20101210\1250\w\s1\(具体的图片文件))每天生成一个文件夹,在每天的文件夹下每隔10分钟生成一个文件夹,那把找到的文件夹及其图片文件复制到另一个文件夹下pic_bak,并删除pic中复制的文件夹及图片文件,主bat文件应该有①遍历文件的路径 ②文件拷贝目的路径 ③条件开始日期 ④条件结束日期四个变量;

TOP

返回列表