powershell - 从 PowerShell 中注册的事件输出中拆分字符串
问题描述
我刚刚开始使用IO.FIleSystemWatcher
. 我当前的代码工作并提醒我在所需位置创建的文件,但是我想将一些变量输出并拆分字符串。我无法让拆分部分工作。
功能代码:
$folder = 'D:\Output'
$filter = '*.jpg'
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Out-File D:\Output\scans\$name.txt
}
$name
将始终像 'file.name.fn_xxx.jpg' 这样格式化,我想用来split
从 中提取 'file' $name
,例如:
$name.split('.')[0]
但是,据我所知,这无济于事。例如,我可以输出一个文件$name
名作为文件名,但如果我首先尝试拆分它,则没有任何输出。
非功能代码:
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
$name = $name.split('.')[0]
Out-File D:\Output\scans\$name.txt
}
这有点过头了,所以任何建议或建议都会受到赞赏。
谢谢
解决方案
我最终通过简单地使用另一个变量来解决它。
$folder = 'D:\Output'
$filter = '*.jpg'
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Write-Host "$name"
$x = $name.split(".")[0]
Out-File D:\Output\scans\$x.txt
我不确定为什么会这样,但确实如此。如果有人知道为什么,请发表评论!
推荐阅读
- docker - 如何使用 jenkins pipline 步骤在 docker 映像中进行 pip 安装?
- javascript - jQuery交互后提交按钮不起作用
- c# - 使用 JsonConvert.DeserializeObject 或 JObject.Parse 将类反序列化为 c# 中的字典
- javascript - 离子不能发布嵌套数组
- c# - 在主屏幕上打开表格
- azure - 如何在 App 洞察力上创建 Azure Kusto 查询以仅按客户端操作系统名称(已删除操作系统版本)分组?
- php - 如何隐藏选择选项值并用新值替换 2 个选项?
- git - 如何从存储库中已有的特定 TAG 更改文件?
- java - 无法解决类异常:com.blazemeter.jmeter.RandomCSVDataSetConfig
- azure - DATABRICKS 数据库文件系统