我们可以用PowerShell编写明星程序吗?

Can we write star programs in PowerShell?

我是power新手-shell正在练习一些程序。如果我可以在 Powershell 中编写 * 程序,请告诉我。我知道它是一种脚本工具,用于系统管理。为了掌握基础知识,我正在尝试这个脚本。

这是我写的代码:

cls
for ($i = 1; $i -le 4 ;$i++)
{
for ($j = 1; $j -le $i; $j++){
write-host "*"
}

write-host "`n"
}

Desired Output :

*

* *

* * *

* * * *

我得到的输出为:

任何人都可以帮助我解决这个问题。非常感谢您的帮助。

SOLVED

cls
for ($i = 1; $i -le 4 ;$i++)
{
for ($j = 1; $j -le 4 ; $j++){
write-host "*" -NoNewline
}

write-host "`n"
}

您发布的解决方案对我不起作用。 [皱眉] 它给出了 4 行 4 个星号,每个星号与其他星号之间用一个空行隔开。

此版本使用 foreach 循环,遍历所需的行数,绘制一条使用字符串乘法构建的线,插入一个空行,然后对该行中的每一行进行重复数数。

$LineCount = 8
$LineChar = '*'

foreach ($LC_Item in 1..$LineCount)
    {
    Write-Host ($LineChar * $LC_Item)
    Write-Host
    }

输出...

*

**

***

****

*****

******

*******

********

这个任务的代码很多。 PowerShell 允许通过多种方式来完成相同或相似的任务。至于你的努力,这可以很容易地简化为一个班轮。无需写入主机。

# Use the range operator, pipe to a ForEach with a string repeat '*' X times per the range number passed in.

1..8 | ForEach{('*')*$PSItem}

# Results
*
**
***
****
*****
******
*******
********

更新以包含空行。

嘿李,是的简洁,我错过了所需的空白行。轻松修复...

# Use the range operator, pipe to a ForEach with a string repeat '*' X times per the range number passed in and a blank line for each pass
1..8 | ForEach{('*')*$PSItem + "`n"}

# Results

*

**

***

****

*****

******

*******

********