仅在一级子文件夹中执行批处理命令

问题描述 投票:0回答:1

我只想在所有一级子文件夹中执行此代码。

@echo off

powershell.exe "$o = Get-Content -Raw .\manifest.json | ConvertFrom-Json; '{0} {1} - Microsoft Flight Simulator {2}' -f $o.creator, $o.title, $o.version | Set-Content ('version_{0}_msfs.txt' -f (-split $o.title)[0])"

我可以在批处理文件中执行此操作吗? 当前文件夹的每个一级子文件夹中的文件中都有一个manifest.json。我想从当前文件夹运行批处理文件。命令的 PowerShell 部分会很好。

powershell batch-file subdirectory
1个回答
0
投票

这个对我有用:

@echo off

setlocal enableDelayedExpansion

REM Retrieve Parent Folder
set parentfolder=%cd%

REM Retrieve Subfolders
set i=0
for /f "eol=: delims=" %%F in ('dir /b /ad *') do (
  set /a i+=1
  set "folder!i!=%%F"
)

REM Loop Through Sub Folders
for /l %%N in (1 1 %i%) do (
cd %parentfolder%\!folder%%N!
Powershell.exe "$o = Get-Content -Raw .\manifest.json | ConvertFrom-Json; '{0} {1} - Microsoft Flight Simulator {2}' -f $o.creator, $o.title, $o.package_version | Set-Content ('version_{0}_msfs.txt' -f (-split $o.title)[0]).ToLower()"
)
© www.soinside.com 2019 - 2024. All rights reserved.