首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell关闭FileStream

PowerShell关闭FileStream
EN

Stack Overflow用户
提问于 2015-12-18 14:15:00
回答 1查看 5K关注 0票数 1

我正在读取一个文件,加密内容,并使用PowerShell将密码文本写回一个文件。当FileStream对象($inFS)关闭时,它在pwd (C:\docs)中创建一个名为"0“的文件。我打开文件,上面写着"32“字。

加密的内容正在写入另一个目录中的文件,没有任何问题。我想,可能缓冲区中还有什么东西,所以我尝试了Flush()和Dispose(),但是结果是一样的。为什么会这样呢?

代码语言:javascript
复制
$inFile = 'C:\docs\algorithm_fsa.c'
$inFS = New-Object FileStream($inFile, [FileMode]::Open)

DO
{

  $count = $inFS.Read($data, 0, $blockSizeBytes)
  $offset += $count
  $outStreamEncrypted.Write($data, 0, $count)
  $bytesRead += $blockSizeBytes

}While($count > 0)

$inFS.Close()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-18 15:13:23

在PowerShell中,>字符用于重定向,用于将文本从一个命令传输到一个文件或另一个流。

用你的线条

代码语言:javascript
复制
}While($count > 0)

您正在指示PowerShell将$count的内容写入名为0的文件。它会这样做,无论您从哪个目录中运行脚本。

将该>更改为-GT,这是大于PowerShell的PowerShell比较运算符,您应该会得到所期望的结果。

此外,需要更改此循环,因为目前它只执行一次遍历文件,因为$count > 0不是可操作的比较。一旦你用-gt代替了>,你就可以走了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34357609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档