我必须“几乎”镜像两个文件夹。一个文件夹包含文件格式为*_output.txt的工具的输出。在这个工具运行时,文件在这里不断添加,它将产生数十万个文件。另一个应该包含与另一个工具的输入相同的文件,但该工具要求格式为*_input.txt。
我的当前解决方案是一个powershell脚本,它循环遍历第一个文件夹,检查重命名的文件是否存在,如果不存在,则使用Copy-Item复制并重命名它。然而,事实证明,一旦文件号足够高,效率就会很低。我想改善这一点。
是否有可能以某种方式使用机器人复制的/MIR并将第二个文件夹中的文件重命名?如果重命名的文件存在,我希望防止原始文件被镜像。
这样的事情有可能吗?
发布于 2022-06-29 11:18:59
您可以使用FileSystemWatcher:
$watcher = New-Object -TypeName System.IO.FileSystemWatcher -Property @{Path='c:\temp\lib'; Filter='*_output.txt'; NotifyFilter=[IO.NotifyFilters]::FileName, [IO.NotifyFilters]::LastWrite};
Register-ObjectEvent -InputObject $watcher -EventName Created -Action {Copy-Item $event.SourceEventArgs.FullPath $($event.SourceEventArgs.FullPath.Replace("output","input"))};
$watcher.EnableRaisingEvents = $truehttps://stackoverflow.com/questions/72796635
复制相似问题