powershell调用函数返回一个值

时间:2016-04-20 06:29:13

标签: powershell

我有一个用于foldercleanup的powershell脚本。我希望键值($ key)由一个名为passval的函数返回,该函数是一个单独的文件。但它不会过去。 这是函数

  function passval{$s="cleanupfolder"
               $s
              return $s}

这是主要代码

$colItems = (Get-ChildItem D:\00Newfolder  -recurse | Measure-Object -property length -sum)
    "{0:N2}" -f ($colItems.sum / 1MB) + " MB"
    $xxx="{0:N2}" -f ($colItems.sum/ 1MB)
    $str=Get-Content D:\trial.txt | ConvertFrom-Csv

    "This is the function passed value" 
     $key = passval
     echo $key

    $flag=0

    for($i=0; $i -lt $str.length; $i++){

    if($str[$i].key -eq $key){
    $flag=1
    $flag
    $value=$str[$i].value



    }
    }

    $flag

    if($flag -eq 0){$a = new-object -comobject wscript.shell

    $b = $a.popup(“no match" )}

    if($flag -eq 1){$a = new-object -comobject wscript.shell

    $b = $a.popup(“ match" )}             


    if($xxx -gt $value){Remove-Item  D:\00Newfolder\*   -include *.jpg}

    $colItems = (Get-ChildItem D:\00Newfolder  -recurse | Measure-Object -property length -sum)
    "{0:N2}" -f ($colItems.sum / 1MB) + " MB"
    $xxx="{0:N2}" -f ($colItems.sum/ 1MB)

1 个答案:

答案 0 :(得分:1)

您的passval函数定义在哪里?它必须在被调用之前定义。现在,它将返回您的值两次,将其更改为:

function passval
{
     $s="cleanupfolder"               
     return $s
}

并在旁边注意:处理格式化和命名。在powershell中,您的函数应该被称为Get-PassValue