我有以下脚本应该在一些SQL和批处理脚本中替换两个关键字,然后将它们返回到原始脚本:
# Modify TRIS 5 Scripts to account for database names used
$configFiles = Get-ChildItem (Join-Path $PSScriptRoot "\tris5scripts\") -Rec
foreach ($file in $configFiles) {
(Get-Content $file.PSPath) |
ForEach-Object { $_ -replace "TRISDemo4113", $databaseName } |
Set-Content $file.PSPath
ForEach-Object { $_ -replace "internal", $tris5Name } |
Set-Content $file.PSPath
}
cmd.exe (Join-Path $PSScriptRoot "\tris5scripts\execAll.cmd")
cmd.exe (Join-Path $PSScriptRoot "\tris5scripts\Prepare Dashboard Statistics.cmd")
if ($databaseName -ne "TRISDemo4113" -or $tris5Name -ne "internal") {
$configFiles = Get-ChildItem (Join-Path $PSScriptRoot "tris5scripts") -Rec
foreach ($file in $configFiles) {
(Get-Content $file.PSPath) |
ForEach-Object { $_ -replace $databaseName, "TRISDemo4113" } |
Set-Content $file.PSPath
ForEach-Object { $_ -replace $tris5Name, "internal" } |
Set-Content $file.PSPath
}
}
但是,该脚本会使此文件夹中的每个文件都为空白。我不知道我是如何在另一个脚本中使用这个确切的代码片段并且它工作正常。它似乎得到了两个cmd.exe调用,什么也没做,因为现在每个文件都是空白的。
我要做的就是更改文件中的这两个值:
$databaseName
$tris5Name