PowerShell - заменить вне файла из / в _ - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь использовать 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      }

    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...