【发布时间】:2021-12-17 16:47:43
【问题描述】:
当我运行我的脚本时,它会添加一个我没有请求的输出。
$input = Read-Host -p "Message?";
$morseFile = Get-Content C:\Users\lukas.downes\Documents\Script\morse.csv
$letter;
$code;
$outputAsString = "";
for ($j = 0; $j -lt $input.Length; $j++)
{
for ($i = 1; $i -lt $morseFile.Length; $i++)
{
$letter = ([string]$morseFile[$i]).Split(',')[0];
$code = ([string]$morseFile[$i]).Split(',')[1];
if ($input[$j] -eq $letter)
{
$outputAsString += $code;
write-host ("" + $letter + ": " + $code)
}
}
}
Write-Host $outputAsString
这个输出:
> Message?: sos
> Z
> --..
> S: ...
> O: ---
> S: ...
> ...---...
这很奇怪,因为我什至没有在我的脚本中使用“Z”。
【问题讨论】:
-
删除
$letter;和$code;行 - PowerShell 中的变量不需要声明,您看到的垃圾输出很可能是上次运行时这些变量的内容。 -
morse.csv真的是 CSV(逗号分隔值)文件吗?它有标题吗?
标签: powershell scripting