PowerShell关闭文件流
我正在读取文件,对内容进行加密,然后使用PowerShell将密文写回文件。关闭FileStream对象($inFS)时,它会在pwd(C:\docs)中创建一个名为“0”的文件。我打开了文件,里面写着“32” 加密内容正在写入另一个目录中的文件,没有问题。我想缓冲区中可能还有东西,所以我尝试了Flush()和Dispose(),但结果相同。为什么会这样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
$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专业人士中是一个巨大的争议点。真让人困惑啊。很高兴看到我不是唯一犯那个错误的人。再次感谢。