如何实现批处理仅在当前目录一级子文件夹执行指定PowerShell代码?
实现遍历一级子文件夹执行指定PowerShell命令的批处理方案
完全可以实现这个需求,只需要在批处理中添加遍历当前目录下所有一级子文件夹的逻辑,同时调整PowerShell命令中的文件路径,确保指向对应子文件夹内的manifest.json。
修改后的完整批处理代码如下:
@echo off for /d %%d in (*) do ( powershell.exe -Command "$dir = '%%d'; $o = Get-Content -Raw (Join-Path $dir 'manifest.json') | ConvertFrom-Json; $outputTxt = Join-Path $dir ('version_{0}_msfs.txt' -f (-split $o.title)[0]); '{0} {1} - Microsoft Flight Simulator {2}' -f $o.creator, $o.title, $o.version | Set-Content $outputTxt" )
关键修改说明:
for /d %%d in (*):遍历当前目录下的所有一级子文件夹,每个子文件夹的路径会被存入%%d变量Join-Path $dir 'manifest.json':拼接子文件夹路径和manifest.json文件名,确保PowerShell能找到对应子文件夹内的配置文件Join-Path $dir (...):将生成的version_xxx_msfs.txt文件保存到对应的子文件夹内,避免全部堆积在当前目录- 完整保留了你原本的PowerShell核心逻辑:读取JSON内容、格式化字符串、生成目标文本文件
注意事项:
- 确保每个一级子文件夹内确实存在
manifest.json文件,否则PowerShell会抛出文件不存在的错误 - 子文件夹名称或
manifest.json中的内容包含空格时,代码依然可以正常处理
内容的提问来源于stack exchange,提问作者Björn K
相关产品推荐
相关产品推荐

