Powershell 记事本在设置内容后打开陈旧文件
我在脚本中有以下代码:Powershell 记事本在设置内容后打开陈旧文件,powershell,file-io,Powershell,File Io,我在脚本中有以下代码: Set-Content -Path $myFile -Value $myContent 在脚本的后面,我希望通过在记事本中打开文件来显示最终结果: notepad $myFile 我发现我看到的启动文件具有原始内容,而不是我在脚本中设置的内容。实际文件具有正确的内容,因此只需获取陈旧的文件内容即可 我只是在开始处理大文件时才注意到这种行为,所以我认为在设置内容后需要刷新或等待 我发现的一个解决方法是使用-PassThru参数: $dummy = Set-Content
Set-Content -Path $myFile -Value $myContent
在脚本的后面,我希望通过在记事本中打开文件来显示最终结果:
notepad $myFile
我发现我看到的启动文件具有原始内容,而不是我在脚本中设置的内容。实际文件具有正确的内容,因此只需获取陈旧的文件内容即可
我只是在开始处理大文件时才注意到这种行为,所以我认为在设置内容后需要刷新或等待
我发现的一个解决方法是使用-PassThru
参数:
$dummy = Set-Content -Path $myFile -Value $myContent -PassThru
然而,我发现这需要相当长的时间。这是我必须处理的权衡问题吗?你是说
设置内容
是异步运行的(这肯定是出乎意料的),但我个人认为,在W10和PSv5.1上,使用'hi'>t.txt这样的命令,没有证据表明这一点;1..100000 |设置内容t.txt;notepad t.txt
。你的环境是什么?你能提供一个?另外,-PassThru
收集所有要写入内存中文件的输出(同样),这对于大文件来说是有问题的。这只是我的假设。也许它不是设置内容本身,而是其他东西。关于你对-PassThru的评论,是的,当然,它会再次收集内存中的所有输出。有问题的除了浪费和不必要的事实之外,还有什么方法?再次收集:是的,只是浪费/不必要的意义上有问题。至于完整的示例,您是否需要我的大文件才能使示例更完整?您是在建议设置内容
异步操作(这肯定是意外的),但我个人认为,在使用PSv5.1的W10上,使用诸如'hi'>t.txt之类的命令,没有证据表明这一点;1..100000 |设置内容t.txt;notepad t.txt
。你的环境是什么?你能提供一个?另外,-PassThru
收集所有要写入内存中文件的输出(同样),这对于大文件来说是有问题的。这只是我的假设。也许它不是设置内容本身,而是其他东西。关于你对-PassThru的评论,是的,当然,它会再次收集内存中的所有输出。有问题的除了浪费和不必要的事实之外,还有什么方法?重新收集:是的,只是浪费/不必要的意义上有问题。至于完整的示例,您是否需要我的大文件才能使示例更完整?