Я создаю сценарий для получения пути или пути к общедоступному вводу пользователя, который предоставит список разрешений для указанного пути.Используя команду Read-Host, позвольте мне попросить пользователя указать количество путей, которые ему требуются, и, таким образом, ему / ей нужно указать пути по одному, которые будут предоставлять список ACL.При этом у меня возникает проблема, когда пользователь вводит неправильный ввод, например, если пользователь вводит ввод, который не является целым числом или является двойным значением или его строкой, поэтому он должен перейти в условие if и снова он / онавведите неправильное число, это приведет к завершению работы сценария и потребует повторного запуска сценария.
Я пробовал приведенный ниже сценарий, однако в строке 4 я полностью застрял.вот полный код, который я написал.В строке 3, когда я ввожу значение, скажем, 1.2 или любое строковое значение, скажем, Hello или любое отрицательное целое число или значение 0, оно должно перейти к строке 4, в противном случае оно должно перейти к elseif, который является строкой 36. Может кто-нибудь помочь мне исправить это,Я знаю, что могу сделать это более коротким способом, но что-то здесь нарушает.
Clear-Host
Get-Date
$num_path= Read-Host "`n `n Enter number of paths"
if (($num_path -as [int]) -le 0 -or ($num_path -as [double]) -is [double])
{
Write-Host "Error: Value you have Entered is either less than or equal to 0 or not an interger or it is a String value.`nKindly enter correct value." -ForegroundColor Black -BackgroundColor Cyan
$New_num_path= Read-Host "`n `n Re-Enter number of paths"
if (($New_num_path -as [int]) -gt 0 -and !($New_num_path -as [double]) -is [double])
{
Write-Host "`n `n \\ServerName\FilePath `n `n Enter File Path in above format"
For($i=1; $i -le $New_num_path; $i++)
{
$paths= Read-Host "`n `nEnter File path no. $i " #Enter path with $ sign after drive name e.g E$\Applications
Write-Host "`n `n"
if (Test-Path -Path $paths)
{
foreach($path in $paths)
{
Get-Acl -Path $path | fl
}
}
Else
{
Write-Host "Error: Path '$paths' does not exist" -ForegroundColor Black -BackgroundColor Cyan
}
}
}
Else
{
Write-Host "Error: You have input wrong value. Kindly Re-run the script again." -ForegroundColor Black -BackgroundColor Cyan
}
}
Elseif(($num_path -as [int]) -gt 0)
{
Write-Host "`n `n \\ServerName\FilePath `n `n Enter File Path in above format"
For($i=1; $i -le $num_path; $i++)
{
$paths= Read-Host "`n `nEnter File path no. $i " #Enter path with $ sign after drive name e.g E$\Applications
Write-Host "`n `n"
if (Test-Path -Path $paths)
{
foreach($path in $paths)
{
Get-Acl -Path $path | fl
}
}
Else
{
Write-Host "Error: Path '$paths' does not exist" -ForegroundColor Black -BackgroundColor Cyan
}
}
}
Else
{
Write-Host "Error: You have input wrong value. Kindly Re-run the script again." -ForegroundColor Black -BackgroundColor Cyan
}
Write-Host "`n `n `n `t `t `t------------------------------------------------------THE END------------------------------------------------------`n"