我正在寻找有关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/