SourceFile.txt имеет следующий код:
<somepath>\filename_$tminus1.csv
Ниже приведен скрипт, который я написал.
$date = [DateTime]::ParseExact("21-Aug-18", "dd-MMM-yy", $null)
if ($date.DayOfWeek -eq "Monday") {
$tminus1 = $date.AddDays(-3).ToString('yyyyMMdd')
$tminus2 = $date.AddDays(-4).ToString('yyyyMMdd')
Write-Host "Date vaulues set for Monday"
} else {
$tminus1 = $date.AddDays(-1).ToString('yyyyMMdd')
$tminus2 = $date.AddDays(-2).ToString('yyyyMMdd')
Write-Host "Date vaulues set for Non-Monday"
}
$files = Get-Content -Path $PSScriptRoot\SourceFile.txt
foreach ($file in $files) {
Convert-Path $file
if (-not (Test-Path $file)) {
echo ""
Write-Host "$file doesn't exist"
} else {
echo ""
Write-Host "$file exists"
}
}
Командлет Test-Path
не заменяет значение переменнойпока ищу файл.Он печатает ниже.
<somepath>\filename_$tminus1.csv doesn't exist
Я ожидаю, что значение $tminus1
подставляется как 20180823, так что часть else печатает ниже.
<somepath>\filename_$tminus1.csv exists