PowerShell关闭文件流

PowerShell关闭文件流,powershell,filestream,Powershell,Filestream,我正在读取文件,对内容进行加密,然后使用PowerShell将密文写回文件。关闭FileStream对象($inFS)时,它会在pwd(C:\docs)中创建一个名为“0”的文件。我打开了文件,里面写着“32” 加密内容正在写入另一个目录中的文件,没有问题。我想缓冲区中可能还有东西,所以我尝试了Flush()和Dispose(),但结果相同。为什么会这样 $inFile = 'C:\docs\algorithm_fsa.c' $inFS = New-Object FileStream($inFi

我正在读取文件,对内容进行加密,然后使用PowerShell将密文写回文件。关闭FileStream对象($inFS)时,它会在pwd(C:\docs)中创建一个名为“0”的文件。我打开了文件,里面写着“32”

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

$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()

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

用你的产品线

}While($count > 0)
您正在指示PowerShell将
$count
的内容写入名为0的文件。它可以在运行脚本的目录中执行此操作

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


此外,此循环需要更改,因为当前它只执行一次文件传递,因为
$count>0
不是可操作的比较。一旦你用
-gt
替换>,你就可以开始了。

$count>0
->
$count-gt 0
为什么我没有看到。。。我真是个新手。谢谢。不,别难过。PowerShell对
>
的使用在IT专业人士中是一个巨大的争议点。真让人困惑啊。很高兴看到我不是唯一犯那个错误的人。再次感谢。