2012-11-29 49 views
1

我有以下代码:传递一个字符串类型的功能

cls 
$input = 'Hello World' 
Write-Host '$input.GetType() = ' + $input.GetType() 

function some-string-function($input) 
{ 
    Write-Host 'In the function now' 
    Write-Host '$input.GetType() = ' + $input.GetType() 
    Write-Host '$input (value) = ' + $input 
    return $input.length 
} 

$result = some-string-function $input 

"`$result = $result" 

我得到以下几点:

$input.GetType() = + System.String 
In the function now 
$input.GetType() = + System.Collections.ArrayList+ArrayListEnumeratorSimple 
$input (value) = + System.Collections.ArrayList+ArrayListEnumeratorSimple 
$result = 

有人能指出,实际上,我怎么通过一个字符串的函数请在PowerShell中?

+1

阅读此答案:http://stackoverflow.com/a/13503181/520612。为什么'+'? 'write-host'不需要它作为连接操作符。 –

+0

让这个答案基督教。那么不只是阅读这个答案,而是在这里给出答案。 – EBGreen

+0

@EBGreen完成它!我不想重复;) –

回答

2

作为我的意见澄清$input是一个保留的自动变量。 如果使用另一个指定变量在some-string-function中对其进行更改,则会出现预期行为。

+0

非常感谢,先生们! –

+0

很高兴帮助! –

+0

圣洁的废话!我已经花了6个小时超过2天撕毁我听到这个......我认为这是转换我的输入对象! Grrrr ...现在修复! – Taegost

相关问题