У меня есть команда, которую мне нужно запустить в PowerShell, я могу запустить ее напрямую, указав переменную. Пример:
command run 2017 Jan
Но мое требование - запустить команду в цикле для каждого из списка переменных:
Jan Feb Mar .... Oct Nov Dec
$ACSautoPath = "C:\sap\rexon\bin\rexon.bat"
$AutomationPath = "C:\Sap\Automation"
$LogPath = "C:\Sap\Automation\Log"
$BackupPath = "C:\Sap\Automation\Backup"
#Date Variables
$DaysToKeep = "-30"
$CurrentDate = Get-Date
$DatetoDelete = $CurrentDate.AddDays($DaysToKeep)
$TimeStamp = Get-Date -format "yyyyMMddHHmm"
$LogFileName = "Backup" + $TimeStamp + ".log"
#ACS Variables
$ACSdomain = "yourdomain"
$ACSurl = "XXXXXXXXXXXXXX"
$ACSuser = "yourusername"
$ACSpass = "c:\ Sap\Automation\password.epw"
#Snapshot Variables
$ACSExportName = "Snapshot"
$ACSExportDownloadName = $ACSExportName + ".zip"
$ACSExportRename = $ACSExportName + $TimeStamp + ".zip"
#Start Logging
Start-Transcript -path $LogPath\$LogFileName
#Log into ACS
Write-Host ([System.String]::Format("Login to source: {0}", [System.DateTime]::Now))
&$ACSautoPath "login" $ACSuser $ACSpass $ACSurl
#Run A rule
Write-Host ([System.String]::Format("Run A rule: {0}",[System.DateTime]::Now))
&$ACSautoPath Runrule cons india 2017 jan
#Log out of ACS
Write-Host ([System.String]::Format("Logout of source: {0}",[System.DateTime]::Now))
&$ACSautoPath "logout"
#Stop Logging
Stop-Transcript
В строке: 27 пользователь должен предоставить переменную, такую как Mar, тогда строка 27 должна быть выполнена для всех периодов в списке, как объяснено ниже,
Я должен указать любой период в середине, например Mar
, тогда цикл должен выполнить команду для:
apr may jun july aug sep oct nov dec jan feb
Как этого достичь?