Board logo

标题: [文件操作] NTFS文件流[已解决] [打印本页]

作者: czjt1234    时间: 2017-3-16 21:19     标题: NTFS文件流[已解决]

本帖最后由 czjt1234 于 2017-3-19 18:33 编辑
  1. @echo off
  2. ::By Demon
  3. ::http://demon.tw
  4. echo hello world>hello.txt
  5. echo http://demon.tw>hello.txt:hide.txt
  6. set /p url=<hello.txt:hide.txt
  7. start %url%
  8. pause
复制代码


http://demon.tw/operating-system/ntfs-file-stream.html
这个文件流的参考链接说明都是英文,看不懂

谁能举几个例子?
作者: taofan712    时间: 2017-3-17 00:01

- -=
一时太高兴,F盘根目录创建了10来个看不见的bat,我在想我怎么删除它们。
作者: Batcher    时间: 2017-3-17 00:33

http://baike.baidu.com/item/ntfs%E6%95%B0%E6%8D%AE%E6%B5%81
这里有你想要的东西吗
作者: zz100001    时间: 2017-3-17 11:21

你们不是天天在叫提问题之前先使用论坛搜索功能吗
大大们以前辛苦发文都没人理已经伤心离去了
很早之前我在此贴就挖过坟了
感兴趣可以去找找
http://www.bathome.net/viewthread.php?tid=21463
作者: 523066680    时间: 2017-3-17 12:04

挺好的,我也是因此第一次看到这个知识。不像重命名那类帖子已经泛滥了。
作者: 老刘1号    时间: 2017-3-17 12:17

666,这个可以有
作者: taofan712    时间: 2017-3-17 19:19

除了用set/p 、for、 more来读取hello.txt:hide.txt的内容
还可以直接notepad hello.txt:hide.txt 打开这个文本。
作者: taofan712    时间: 2017-3-17 19:20

notepad hello.txt:hide.txt 打开后,我点了下文件另存为,是不能被操作的。。
作者: nwm310    时间: 2017-3-18 11:11

本帖最后由 nwm310 于 2017-3-18 11:18 编辑

新增 a.txt:b.txt
cmd
R:\>echo abc  >  a.txt:b.txt
R:\>

PowerShell
PS R:\> echo abc  >  a.txt:b.txt
out-file : 找不到磁碟機。名為 'a.txt' 的磁碟機不存在。

PS R:\> sc a.txt -Stream b.txt -Value abc
PS R:\>

註:檔案大小沒改變,但會改變修改日期
====================
複製q.jpg的內容到 a.txt:q.jpg
cmd
R:\>copy q.jpg a.txt:q.jpg
檔案名稱、目錄名稱或磁碟區標籤語法錯誤。
複製了         0 個檔案。

R:\>type q.jpg > a.txt:q.jpg
R:\>
註:type  unicode格式的文件會變成ansi格式
      type 大檔時會等比較久

PowerShell
PS R:\> copy q.jpg a.txt:q.jpg
copy : 找不到磁碟機。名為 'a.txt' 的磁碟機不存在。

PS R:\> gc q.jpg -enc byte -read 0 |sc a.txt -Stream q.jpg  -enc byte
=======================
開啟 a.txt:q.jpg

mspaint a.txt:q.jpg

========================
用mklink來複製、開啟
(mklink需要系統管理員權限)

cmd
R:\>mklink link.jpg a.txt:q10.jpg
已建立 link.jpg 的符號連結 <<===>> a.txt:q10.jpg

R:\>copy q.jpg link.jpg
複製了         1 個檔案。

R:\>mspaint link.jpg

可以開啟 link.jpg

註:mklink link.jpg a.txt:q10.jpg
      mklink  link.jpg  R:\a.txt:q10.jpg
        兩者是有差別的

R:\>start link.jpg
系統無法執行指定的程式。

PowerShell
PS R:\> cmd /c mklink link2.jpg a.txt:q11.jpg
已建立 link2.jpg 的符號連結 <<===>> a.txt:q11.jpg
PS R:\> copy q.jpg link2.jpg
PS R:\> mspaint link2.jpg
可以開啟

PS R:\> ii link2.jpg
ii : 沒有任何應用程式與此操作的指定檔案有關聯。

PS R:\> start link2.jpg
start : 無法執行這個命令,因為發生錯誤: 沒有任何應用程式與此操作的指定檔案有關聯。。

===================
取出stream內容,另存新檔
7-Zip可以

cmd
R:\>copy a.txt:q.jpg out.jpg
a.txt:q.jpg
檔案名稱、目錄名稱或磁碟區標籤語法錯誤。
複製了         0 個檔案。

R:\>copy link.jpg out.jpg
參數錯誤。
複製了         0 個檔案。

R:\>type link.jpg > out.jpg

PowerShell
PS R:\> copy a.txt:q.jpg out.jpg
copy : 找不到磁碟機。名為 'a.txt' 的磁碟機不存在。

PS R:\> copy link.jpg out.jpg
copy : 參數錯誤。


=============
a.txt裡面有沒有stream
新版cmd       dir  /r

PowerShell
gi a.txt -stream *
================
重新命名 stream
7-Zip可以
===========
修改a.txt,對裡面stream的影響

用Notepad修改、儲存  →  不影響

R:\>echo aaa > a.txt
a.txt裡面的stream不見了
===============
刪除 stream

PowerShell
PS R:\> del a.txt -Stream q.jpg

註:a.txt仍存在
==============
相關指令

PowerShell

PS R:\> (gcm -ParameterName stream).name
Add-Content
Clear-Content
Get-Content
Get-Item
Out-String
Remove-Item
Set-Content
===============
找NTFS alternate data streams

PowerShell
PS R:\> dir -r | ?{  @(gi -Literal $_.FullName -stream * ).length -gt 1 }

================
stream名稱
a.txt   等於  a.txt:DATA
a.txt:q.jpg  等於 a.txt:q.jpg:$DATA
a.txt:$DATA  等於 a.txt:$DATA:$DATA

但並不是所有軟體都認得




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