PowerShell-从/到替换输出文件_
我正在尝试使用PowerShell将多个实例中的所有作业导出到.txt文件 但是当我接触到名称上使用“/”的作业时,由于操作系统命名限制,无法创建文件 因此,我想导出这些作业,并将其名称中的“/”替换为“\。 这是我正在使用的查询PowerShell-从/到替换输出文件_,powershell,Powershell,我正在尝试使用PowerShell将多个实例中的所有作业导出到.txt文件 但是当我接触到名称上使用“/”的作业时,由于操作系统命名限制,无法创建文件 因此,我想导出这些作业,并将其名称中的“/”替换为“\。 这是我正在使用的查询 $Loop = Invoke-Sqlcmd -ServerInstance Source -Database DB -Query "SELECT DISTINCT [alias/host] as [SrcServer] FROM [DB].[dbo].[AllData
$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 }
}
}
我有点困惑,但可能只有我一个人。您有一个循环,其中迭代器是
$I
。我看不到在任何地方使用了它。您正在替换脚本中的\而不是/
。只需对/
使用相同的语法即可。它还包含($JobsExport.SrcServer)
当它在循环中时,它可能应该是$..SrcServer
。这有点奇怪。问题可能是它在文件名中使用了$\ucode>而不是$srvFolderName
。我想知道如何替换“/”从输出文件名开始。我注意到我创建了两个循环,并删除了一个循环;整个脚本按照我的预期运行,我需要知道如何替换输出文件中的“/”,请;您说您需要替换“/”,但我只看到您正在替换“\\”。无论输出文件名在哪个变量中,您都可以$variable.replace(“/”,“\”)