PowerShell脚本优化需求:ServiceNow文件导入后移至已处理文件夹
PowerShell脚本优化:自动导入ServiceNow文件并归档
需求说明
- 每10分钟有新文件存入
C:\Amit文件夹 - 文件处理完成后需移至
C:\Amit\Processed归档 - 文件名含动态日期时间(无固定名称),需自动选取最新文件导入
优化后的完整脚本
# 核心配置参数 $watchFolder = "C:\Amit" $processedFolder = "C:\Amit\Processed" $serviceNowInstance = "instance.service-now.com" $tableName = "sys_data_source" $tableSysId = "176ada0f1ba89950f03fa861f54bcbe6" # 确保归档目录存在,不存在则自动创建 if (-not (Test-Path -Path $processedFolder)) { New-Item -ItemType Directory -Path $processedFolder | Out-Null } # 持续循环处理逻辑 while ($true) { # 获取目录中最新的未处理CSV文件(按最后写入时间倒序,取第一个) $latestFile = Get-ChildItem -Path $watchFolder -Filter "*.csv" | Sort-Object LastWriteTime -Descending | Select-Object -First 1 if ($latestFile) { try { # 动态构建ServiceNow API请求URI $uri = "https://$serviceNowInstance/api/now/attachment/file?table_name=$tableName&table_sys_id=$tableSysId&file_name=$($latestFile.Name)" # 配置请求头(替换为实际的ServiceNow账号凭证) $authToken = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes('your_username:your_password')) $headers = @{ "Authorization" = "Basic $authToken" "Content-Type" = "text/csv" } # 读取文件内容并发送POST请求到ServiceNow $fileContent = Get-Content -Path $latestFile.FullName -Raw Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $fileContent # 处理成功后移动文件至归档目录 Move-Item -Path $latestFile.FullName -Destination $processedFolder -Force Write-Host "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') 成功处理并归档文件: $($latestFile.Name)" } catch { Write-Host "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') 处理文件 $($latestFile.Name) 失败: $_" } } else { Write-Host "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') 未发现待处理的CSV文件" } # 等待10分钟(600秒)后再次检查新文件 Start-Sleep -Seconds 600 }
关键功能说明
- 动态文件识别:通过
LastWriteTime排序筛选最新文件,无需依赖固定文件名 - 自动归档机制:仅在文件成功导入ServiceNow后,才将其移至
Processed目录,避免丢失未处理文件 - 持续监控:通过
while($true)循环+Start-Sleep实现每10分钟自动检查新文件 - 错误处理:捕获请求异常并输出日志,方便排查问题
使用注意事项
- 必须替换脚本中的
your_username:your_password为实际的ServiceNow账号凭据 - 若需处理非CSV格式文件,修改
-Filter参数(例如"*.xlsx") - 可根据业务需求调整检查间隔时间(修改
Start-Sleep的秒数)
内容的提问来源于stack exchange,提问作者Amit Thakur
相关产品推荐
相关产品推荐

