You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中将文件复制到NTFS备用数据流并解决相关报错?

NTFS 备用数据流操作报错解决方案

核心原因

你遇到的所有报错本质是执行环境不匹配:教材给出的命令是针对原生 Windows 命令提示符(CMD)设计的,但你当前使用的是 PowerShell 环境,PowerShell 的命令别名解析、路径解析、重定向逻辑和 CMD 存在明显差异,直接执行 CMD 语法的命令就会触发报错。

具体问题修复方案

1. 备用数据流写入操作修复

两种可选方案:

  • 方案一:直接切换到 CMD 环境执行(最适配教材示例)
    首先在 PowerShell 中输入 cmd 进入命令提示符环境,再执行你的写入命令即可:
    C:\> type c:\hello.exe > c:\README.txt:hello.exe
    
    操作完成后输入 exit 即可返回 PowerShell。
  • 方案二:使用 PowerShell 原生语法执行
    PowerShell 对带冒号的 NTFS 流路径解析要求更严格,需要用引号包裹完整流路径,同时处理二进制文件要指定字节流模式避免文件损坏:
    Get-Content -Path "C:\hello.exe" -Raw -AsByteStream | Set-Content -Path "C:\README.txt:hello.exe" -AsByteStream
    
    你之前遇到的路径格式不支持、参数找不到报错,都是因为没有用引号包裹带流名称的路径,PowerShell 误把冒号后的内容解析为独立参数或驱动器前缀导致的。

2. ::$DATA 访问报错修复

你遇到的报错有两个诱因:一是漏写了完整标识符 $DATA,二是 PowerShell 路径解析规则限制。修复方式同样分两种:

  • CMD 环境下执行:
    C:\> type C:\hello.exe::$DATA
    
  • PowerShell 环境下执行:
    用引号包裹完整路径即可正常解析:
    Get-Content -Path "C:\hello.exe::$DATA"
    

注意事项

操作 C 盘根目录下的文件时,需要以管理员身份运行终端,否则可能触发权限不足报错。

操作验证方法

  • CMD 环境下执行 dir /r C:\ 可以列出所有文件附带的备用数据流,确认你写入的 :hello.exe:$DATA 存在即可。
  • PowerShell 环境下执行 Get-Item -Path C:\README.txt -Stream * 可以查看指定文件的所有数据流信息。

内容的提问来源于stack exchange,提问作者Austen Reece

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:18:02