Не могу получить его, чтобы обеспечить правильный вывод - PullRequest
0 голосов
/ 25 марта 2020

У меня есть эта функция, и я не могу заставить ее работать, вывод $ DecimalConversion не выходит .. Я думаю, что у меня есть некоторые синтаксические ошибки.

function Get-DecimalNumber(){
$FileCheck = Test-Path "C:\Conversions\conversions.csv"
if($FileCheck){
Do
{
[int]$GetDecimal = Read-host "Write a number between 1-255" | Out-Null
}
while ($GetDecimal -notmatch '\d{1,3}' -or (1..255) -notcontains $GetDecimal)
$DecimalConversion= "{0:X}" -f $GetDecimal
$DecimalConversion
}
else{Write-Warning "Can not find conversions.csv, creating now under C:\Conversions\"; New-Item "C:\Conversions\conversions.csv" -Force | Out-Null}
}
$getfunction=Get-DecimalNumber

Ответы [ 2 ]

2 голосов
/ 25 марта 2020

Возможно, вы могли бы использовать лучшее while условие. Однако ваша проблема вызвана тем, что командлет out-null на read-host.

Если вы используете это, $GetDecimal не получит передаваемого вами значения, так как out-null обрабатывается до назначения случается. Просто удали это. И это должно работать.

0 голосов
/ 28 марта 2020

Итоговый код, я думаю, это выглядит лучше , дайте мне знать, что вы думаете!

function Get-DecimalNumber { <# .Description The Get-DecimalNumber function gets user input for a decimal number and converts it into hexadecimal and binary numbers. Then this data is added to an excel file (.csv) and the date of conversion is displayed in short form m/d/yyyy. #> $ErrorActionPreference = 'silentlycontinue' #Silences errors $Test = Test-Path "C:\temp\test\conversions.csv" #Variable to test path if (! $Test) { #Checking if path does not exist Write-Warning "conversions.csv File Not Present, creating under C:\temp\test\" New-Item 'C:\temp\test\conversions.csv' -Force | Out-Null; break; exit #Creating path with file & suppressing output } else { [int]$Num = Read-Host "Enter number from 1-255" if ($Num -gt 255 -or $Num -le 1) { Write-Warning "You did not enter a number in the specified range"; break; exit } else { $Hex = [Convert]::ToString($Num, 16) #Converting from decimal to hexadecimal $Bin = [Convert]::ToString($Num, 2) #Converting from decimal to binary Write-Host "Decimal to Hex and Binary:" $NewHashTable1 = @{ } #Creating hashtable $NewHashTable1.Add('Decimal', $Num) #Adding values from variables to hash table $NewHashTable1.Add('Hexadecimal', $hex)<br> $NewHashTable1.Add('Binary', $bin) $NewHashTable1 #Output to screen the previously created hashtable $NewHashTable1 >> "C:\temp\test\conversions.csv" #Appending hashtable to .csv file Write-Output "'n" Get-Date -Format d #Output date in short format $Now = Get-Date -Format d $Now >> "C:\temp\test\conversions.csv" #Output date to .csv file } } }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...