Board logo

标题: [文件操作] [分享]批处理为可执行程序创建域识别对象文件 [打印本页]

作者: hanyeguxing    时间: 2011-1-5 09:26     标题: [分享]批处理为可执行程序创建域识别对象文件

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


方法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 编辑 ]
作者: gtflong    时间: 2011-1-5 11:20     标题: 批处理遍历文件夹(文件夹命名为日期和时间)拷贝文件

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

这不是NTFS流文件么..
域识别是什么东西
作者: hanyeguxing    时间: 2011-1-5 13:40     标题: 回复 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 编辑 ]




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