我有以下腳本,但它永遠不會結束執行。解析腳本永不結束
可能是什麼問題?我試圖調試它,但顯然它可以正確使用單個文件,但是當我將它扔到內容充滿內容的文件夾失敗時。
$path = split-path -parent $MyInvocation.MyCommand.Definition
$files = Get-ChildItem "$path\CodeForCertification\5_SourceCode\*" -Include *.c,*.h -Recurse | where{
! $_.PSIsContainer
}#$PSScriptRoot
ForEach ($file in $files){
$data = Get-Content -Path $file.FullName
$feature = Get-Content "$path\Disabled_Features.txt"
#[System.ArrayList]$Modifier
$nl=[Environment]::NewLine
[email protected]()
$flag=0
$data = $data | ForEach-Object -Begin {
$ignore = $false; $levels = 0
} -Process {
for($counter=0; $counter -lt $feature.Count; $counter++){
$parse = $feature[$counter]
if($_ -match "^#ifdef $parse" -And $flag -eq '0') {
$ignore = $true
$flag = 1;
}
}
if($ignore) {
if ($_ -match "^#ifdef") {
$levels++
}elseif ($_ -match "#endif") {
if($levels -ge 1) {
$levels--
if($levels -eq '0'){
$ignore = $false
}
}
}
}else {
$flag=0
$temp=$_
$_
$Modifier+="$temp"
}
}
$data | Out-File $file.FullName
}
呀,爲什麼不...... – Jackson
你有一些SAMP我們可以測試的文件?您的disabledFeatures和scrubbed源代碼文件?你有沒有嘗試在文件之間放置一些輸出行,讓你知道它正在繼續?你如何衡量循環缺乏進展?如果有更好的方法,很高興知道這段代碼應該做什麼。 – Matt
您是否使用斷點在PowerShell ISE中進行調試?您的代碼可能會很慢,部分原因是您在每次迭代中都重新讀取txt文件,並在默認模式下使用Get-Content,對於大量文件有很多行,速度非常慢。 – wOxxOm