1

現在、次のコードを含む SQL Server JOB ファイルに取り組んでいます

@active_end_date = 99991231, 
@active_start_time = 0, 
@active_end_time = 235959, 
@schedule_uid = N'59cbfb7d-67c7-495c-810d-0ca7a6357f9c'

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

PowerShell を使用して、次の@schedule_uidコードで削除しています。

$orgineel_localfolder = "C:\Users\Desktop\Jobs_from_Server\aangepast"

$stringtorremove = '@schedule_uid='

$files = Get-ChildItem $orgineel_localfolder *.sql 

ForEach ($file in $files)
{
    $linenumber = Select-String $file -pattern $stringtorremove     
    $removecomma = $linenumber -replace",",""

    $fileName = "C:\Users\EX27740\Desktop\Jobs_from_Server\Orgineel\" + $file.Name.replace("_Orgineel","_nieuwe") # Vervangt alle Orgineel maar niet erg script blijft goed

   (Get-Content $file.fullname) -notmatch $stringtorremove | Out-File $fileName
    }

私の問題は、前の行にあり@active_end_time = 235959,ます。この行のデータは常に@active_end_timeとは限らないので、削除する行の行番号 -1 を取得して、この行の行番号を取得したいと思います。

これどうやってするの?

4

2 に答える 2

0

こんにちは、他の誰かが同様の質問を受けたことがある場合は、これに対する私の解決策を投稿すると思いました:

$orgineel_localfolder = "C:\Users\Desktop\Jobs_from_Server\aangepast"

$stringtorremove = '@schedule_uid='

ForEach ($file in $files){
#gets the line number of the value 
$huidigeregel = Select-String $file -pattern $stringtorremove | Select-Object -ExpandProperty 'LineNumber'

if ([string]::IsNullOrWhitespace($huidigeregel )){
'Deze job heeft geen @schedule_uid= '
} else { 
#get the right line by subtracting the current line with -2
$goederegel = $huidigeregel -2
$valuewithcomma = get-content $file.fullname  | select -Index $goederegel
$valuewithoutcomma = $valuewithcomma -replace",",""
$orginalithcomma= Get-Content $file.fullname
}

$fileName = "C:\Users\Desktop\Jobs_from_Server\aangepast\" + $file.Name.replace("_Orgineel","_nieuwe")   

if ([string]::IsNullOrWhitespace($huidigeregel)){
(Get-Content $file.fullname) -notmatch $stringtorremove | Out-File $fileName
} else {
(Get-Content $file.fullname) -replace $valuewithcomma, $valuewithoutcomma -notmatch $stringtorremove | Out-File $fileName }  
}
于 2016-10-10T13:55:12.270 に答える