系统正在使用转录文件时禁止配置文件脚本

时间:2020-01-30 08:40:23

标签: windows powershell transcription

我在配置文件中使用了一个小脚本,以便在脚本文件过大时对其进行更新(过去一定的行数会触发更新过程);它的作用是启动副本文件的副本,删除副本文件,然后启动另一个具有相同名称的副本文件。但是,当启动ISE的补充实例时,脚本将再次运行,并且当达到脚本文件上的行数限制时,会导致错误声明,导致无法删除脚本文件,因为它正在被某个进程使用(该进程是主实例上的转录-除在会话中最初打开的实例外,没有其他实例的转录,但是打开一个新实例会在屏幕顶部显示一条声明:记录文件已启动)。如何使脚本的执行以系统不使用脚本文件为条件?错误消息不是问题,因为它已经是文件太大的警告,并且可以忽略,但是最好不要在每次打开新文件时都将其放在屏幕顶部实例。

1 个答案:

答案 0 :(得分:0)

以下解决方案未经100%验证,我无法解释所涉及的原理,但可以使用。有关其详细信息,请参见here(开关的来源)。
只需为变量“ $ filename”选择脚本文件的路径,并在if指令的第二个字段中插入用于文件内容存储和更新的脚本。

$fileName = <path of transcript file>
$file = New-Object -TypeName System.IO.FileInfo -ArgumentList $fileName
$ErrorActionPreference = "SilentlyContinue"
[System.IO.FileStream] $fs = $file.OpenWrite(); 
if (!$?) {} else {$fs.Dispose();<script for file content storage and renewal>  
                 }