powershell - Foreach循环在PowerShell中不起作用

标签 powershell loops for-loop scripting

我正在寻找有关Powershell中foreach循环的帮助。因此,目标是根据用户请求的数量在PowerShell中制作新文件,因此,如果用户请求制作4个相同的文件,则应在所请求的文件夹中制作4个文件。我只是似乎无法弄清楚为什么我的foreach循环没有制作多个文件。每次只生成一个文件。我已经附加了部分代码。

$FileName = Read-Host "Enter a file name"
$FilePath = Read-Host "Enter a file path"
$FileNumber = Read-Host "How many files need to be created?"
$num = 1

if ($FileName -gt 0) { 

    foreach($num in 4) {
    New-Item -Path $FilePath -Name $filepath
    #Write-Host $number $FileNumber
    }

}

最佳答案

$ FileName是字符串,因此尽管If($ FileName -gt 0)将返回true,但这不是一个好习惯。

在数字4中也没有任何内容。In的右侧应该是对象的集合,该对象尚未在脚本中的任何位置创建。然后有一个错字,其中您为名称和路径参数都指定了$ FileName。无论如何,我认为您正在寻找这样的东西:

$FileName = Read-Host "Enter a file name"
$FilePath = Read-Host "Enter a file path"
$FileNumber = Read-Host "How many files need to be created?"
$num = 1

if ($FileName) { 
$num..$FileNumber |
    ForEach-Object{
        $NewFile = $FileName + "_" + $_
        New-Item -Path $FilePath -Name $NewFile -ItemType File
    }
}

如果逻辑适合您的目的。然后,我向ForEach-Object cmdlet的管道发送一系列数字。注意:这与您使用的ForEach关键字不同。无论如何,将数字(在本例中为$ _)与先前输入的基本文件名连接起来,然后继续创建该项目。

希望能有所帮助,让我知道...

关于powershell - Foreach循环在PowerShell中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60179392/

相关文章:

powershell - 喜欢在变量中获取 powershell 脚本的输出以在批处理文件中使用

powershell - 使用PowerShell替换JSON中的值

debugging - PowerShell 调试调用命令

javascript - 在 ffmpeg 中使用内容类型的 quicktime 抛出错误 `moov not found`

validation - 使用nonewline在while循环中对读取主机数据条目进行Powershell验证

javascript - for 循环(但一个变量需要一个 if)

loops - LOOP关键字列表

C 引用在 for 循环之后消失

for-loop - 在 azure 管道作业中使用 for 循环

r - 如何在不强制转换为数字的情况下迭代日期列表?