2014-07-02 20 views
0

我正在嘗試使用Read-Host的ValidateLength聲明,但是我無法讓它正常工作。如果我在沒有讀取主機的情況下使用它,它的工作完美無瑕。下面是一些基本的例子:帶讀主機的PowerShell ValidateLength

[ValidateLength(1,3)] $測試= '123'

[ValidateLength(1,3)] $ TEST1 =讀主機屬性不能被添加,因爲它會導致變量test1的值爲 123變得無效。 在線:1 char:1 + [ValidateLength(1,3)] $ test1 =讀主機 + ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ + CategoryInfo:MetadataError:(:) [],ValidationMetadataExcepti 上 + FullyQualifiedErrorId:ValidateSetFailure

是否有可能使用ValidateLength聲明與讀主機?

回答

2

聲明你的讀主機是一個字符串(因爲ValidateLength不能接受任何東西,除了一個字符串),問題就解決了。

[ValidateLength(1,3)]$test1 = [String](Read-Host "Input") 

我不知道爲什麼你必須施放一個類型,但它解決了這個問題。

+0

@CB。 8有效。這不是數字,而是經過驗證的字符串的長度。所以999是有效的,因爲它的長度是3個字符,但是6234不是因爲長度是4個字符。這不是數字具體的,ABC是有效的,而ABCD不是。 – TheMadTechnician

+0

您也可以將類型放置在開頭:'[string] [ValidateLength(1,3)] $ test1 =(Read-Host「Input」)''。仍然奇怪,它不允許除字符串以外的任何其他類型。 – boeprox

+0

@TheMadTechnician :)是:) –