首页 > 解决方案 > PowerShell - 将输出文件从 / 替换为 _

问题描述

我正在尝试使用 PowerShell 将所有作业从多个实例导出到 .txt 文件。

但是当我处理名称上使用“/”的作业时,由于操作系统命名限制,无法创建文件。

因此,我想导出作业并将其名称中的“/”替换为“_”。这是我正在使用的查询。

$Loop = Invoke-Sqlcmd -ServerInstance Source -Database DB -Query "SELECT DISTINCT [alias/host] as [SrcServer] FROM [DB].[dbo].[AllDatabases];" 

foreach ($JobsExport in $Loop) {
    foreach ($i in $JobsExport.SrcServer)   {
        $SrvFolderName = ($JobsExport.SrcServer) -replace '\\','_'

        $dir = "C:\Temp\All_Jobs\"+ $SrvFolderName

        #Create the folders
        if(!(Test-Path -Path $dir )){
            New-Item -ItemType directory -Path $dir
            Write-Host "Folder Created"
        }
        else
        {
          Write-Host "Folder already exists - skipping"
        }

        $srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" ($JobsExport.SrcServer);
        $srv.JobServer.jobs|foreach-Object {$_.script() > "C:\Temp\All_Jobs\$SrvFolderName\$SrvFolderName-$_.txt" | % ($SrvFolderName-$_.txt) -replace '\\','_' -Verbose      }

    }
} 

标签: powershell

解决方案


推荐阅读