无法捕获 Return 值
Unable to Capture Return Value
以下代码片段未生成我需要的输出。
function replaceBlankSpacewithUnderscore
{ Param([Parameter(Mandatory=$true)]
[string]$stringToClean)
$cleanString = $stringToClean
if($cleanString.Contains(" ")){
$cleanString.Replace(" ", "_")
}
return $cleanString
}
# Prompt user for Company name
$companyName = Read-Host "Enter Company Name"
# Trim the string to make sure no leading or trailing whitespace exists
$companyName = $companyName.Trim()
# Prompt user for Position
$position = Read-Host "Enter Job Position"
# Trim the string to make sure no leading or trailing whitespace exists
$position = $position.Trim()
# Construct our new filename with the company name and position
# Company name to Lower Case
$companyNametoLowerCase = $companyName.ToLower()
# Position name to Lower Case
$positiontoLowerCase = $position.ToLower()
$companyNamewithUnderScores = replaceBlankSpacewithUnderscore -stringToClean $companyNametoLowerCase
$positionwithUnderScores = replaceBlankSpacewithUnderscore -stringToClean $positiontoLowerCase
# Combine company name and position (lower case) into one string
$companyNameandPosition = [string]::Format("{0}_{1}", $companyNamewithUnderScores, $positionwithUnderScores)
Write-Output $companyNameandPosition
假设输入是Microsoft Corp
和Software Eng
。
$companyNameandPosition
的输出是System.Object[]_System.Object[]
我阅读了这个 SO page and this Microsoft Docs 页面,但我似乎无法让它正常工作。
预期输出为microsoft_corp_software_eng.odt
在您的函数中,有两个对象被送入管道:return 语句中的 $cleanString.Replace(" ", "_")
和 $cleanString
。 $cleanstring 未更改顺便说一句。
替换、tolower 和 trim 等操作有很多步骤可以组合在一个语句中。我改变了一些东西:
# Prompt user for Company name
$companyName = Read-Host "Enter Company Name"
# Prompt user for Position
$position = Read-Host "Enter Job Position"
# Combine company name and position (lower case) into one string
$companyNameandPosition = [string]::Format("{0}_{1}", $companyName.Replace(' ','_').ToLower().Trim(), $position.Replace(' ','_').ToLower().Trim())
Write-Output $companyNameandPosition
以下代码片段未生成我需要的输出。
function replaceBlankSpacewithUnderscore
{ Param([Parameter(Mandatory=$true)]
[string]$stringToClean)
$cleanString = $stringToClean
if($cleanString.Contains(" ")){
$cleanString.Replace(" ", "_")
}
return $cleanString
}
# Prompt user for Company name
$companyName = Read-Host "Enter Company Name"
# Trim the string to make sure no leading or trailing whitespace exists
$companyName = $companyName.Trim()
# Prompt user for Position
$position = Read-Host "Enter Job Position"
# Trim the string to make sure no leading or trailing whitespace exists
$position = $position.Trim()
# Construct our new filename with the company name and position
# Company name to Lower Case
$companyNametoLowerCase = $companyName.ToLower()
# Position name to Lower Case
$positiontoLowerCase = $position.ToLower()
$companyNamewithUnderScores = replaceBlankSpacewithUnderscore -stringToClean $companyNametoLowerCase
$positionwithUnderScores = replaceBlankSpacewithUnderscore -stringToClean $positiontoLowerCase
# Combine company name and position (lower case) into one string
$companyNameandPosition = [string]::Format("{0}_{1}", $companyNamewithUnderScores, $positionwithUnderScores)
Write-Output $companyNameandPosition
假设输入是Microsoft Corp
和Software Eng
。
$companyNameandPosition
的输出是System.Object[]_System.Object[]
我阅读了这个 SO page and this Microsoft Docs 页面,但我似乎无法让它正常工作。
预期输出为microsoft_corp_software_eng.odt
在您的函数中,有两个对象被送入管道:return 语句中的 $cleanString.Replace(" ", "_")
和 $cleanString
。 $cleanstring 未更改顺便说一句。
替换、tolower 和 trim 等操作有很多步骤可以组合在一个语句中。我改变了一些东西:
# Prompt user for Company name
$companyName = Read-Host "Enter Company Name"
# Prompt user for Position
$position = Read-Host "Enter Job Position"
# Combine company name and position (lower case) into one string
$companyNameandPosition = [string]::Format("{0}_{1}", $companyName.Replace(' ','_').ToLower().Trim(), $position.Replace(' ','_').ToLower().Trim())
Write-Output $companyNameandPosition