gpt4 book ai didi

arrays - Powershell:有没有一种方法可以将数组中的变量作为字符串添加到文件中?

转载 作者:行者123 更新时间:2023-12-03 01:29:30 25 4
gpt4 key购买 nike

我正在尝试在.lua文件中填充由“数据”文件夹中的文件名组成的变量(这些文件的数量可能会有所不同)。例如,我具有以下文件夹结构:

Object
data
file1.meta
file2.meta
stream
*.lua file

我写了以下文件,将对象从数据文件夹中取出:
$Path = Get-ChildItem -Path 'C:\object\data\' -Name '*.meta' -File
$Path.ForEach([string])

哪个很棒。我得到的结果恰好是数组中的项目。我想使用这些数组项来“填充空白”作为单独的变量来创建.lua文件,该文件如下所示:
files 
{
'data/file1.meta',
'data/file2.meta',
}

data_file 'METADATA_FILE1' 'data/file1.meta'
data_file 'METADATA_FILE2' 'data/file2.meta'

我可以使用$ Path [0]和$ Path [1]等对它进行硬编码,但是我可能要添加更多/更少的文件,并且每次都需要数据文件夹包含的确切编号...我正在努力的是运行一个正确的foreach循环次数,并将数组项用作.lua文件中的输出。

最佳答案

使用您可以用作模板的文件结构创建多行字符串:

$luaFileTemplate = @'
files
{{
{0}
}}

{1}
'@

现在,您可以使用 .ForEach()-join根据文件名创建内容:
$fileLines = $Path.ForEach({"    'data/$_',"}) -join [Environment]::Newline
$dataFileCount = 1
$dataFileLines = $files = $Path.ForEach({"data_file 'METADATA_FILE$(($dataFileCount++))' 'data/$_'"}) -join [Environment]::Newline

然后,最后使用 -f运算符将值应用于模板字符串,并将其写入磁盘:
$luaFileContents = $luaFileTemplate -f $fileLines,$dataFileLines
$luaFileContents |Set-Content final_file.lua

关于arrays - Powershell:有没有一种方法可以将数组中的变量作为字符串添加到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59647246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com