PowerShell批量创建多文件夹后生成对应子文件功能失效求助
问题根源
你的代码存在两处核心问题导致文件创建失败:
- 第二个遍历文件的
foreach循环中,$folder变量已经超出第一个遍历文件夹循环的作用域,此时$folder仅保留第一个循环最后一次迭代的Test3值,部分PowerShell环境下甚至会判定为空,路径参数直接失效。 - 没有拼接完整的文件夹绝对路径,直接传
$folder作为-Path参数时,PowerShell会默认在当前工作目录而非C盘根目录下寻找对应文件夹。
修复后的完整脚本
将文件创建逻辑嵌套到文件夹创建的循环内即可,额外添加-Force参数避免文件夹/文件已存在时报错:
$folders = @("Test1","Test2","Test3") $files = @("Test1.txt","Test2.txt","Test3.txt") foreach ($folder in $folders) { # 拼接C盘下的完整文件夹路径 $fullFolderPath = Join-Path -Path "C:\" -ChildPath $folder # 创建目标文件夹 New-Item -ItemType Directory -Path $fullFolderPath -Force # 在当前创建的文件夹下批量生成指定文件 foreach ($file in $files){ New-Item -ItemType File -Path $fullFolderPath -Name $file -Force } }
内容的提问来源于stack exchange,提问作者Levi Lenaers
相关产品推荐
相关产品推荐

