Arrays 使用数组中的值命名文件
我想用数组中存储的值命名文件 我有一个文件夹,里面有一些.xml文件。我已经用MSXSL处理了这些文件,并将输出文件写入了一个输出文件夹 我想用与原始文件相同的名称命名输出文件。但是,目前我的脚本正在调用文件Arrays 使用数组中的值命名文件,arrays,xml,file,powershell,msxml,Arrays,Xml,File,Powershell,Msxml,我想用数组中存储的值命名文件 我有一个文件夹,里面有一些.xml文件。我已经用MSXSL处理了这些文件,并将输出文件写入了一个输出文件夹 我想用与原始文件相同的名称命名输出文件。但是,目前我的脚本正在调用文件[0].xml,[1].xml,[2].xml,等等 以下是我目前的脚本: [array]$files = Get-ChildItem c:\powershell\ -Filter *.xml [array]$names = Get-ChildItem c:\powershell\
[0].xml
,[1].xml
,[2].xml
,等等
以下是我目前的脚本:
[array]$files = Get-ChildItem c:\powershell\ -Filter *.xml
[array]$names = Get-ChildItem c:\powershell\ -Filter *.xml | Select-Object Name
$current = 0
foreach ($file in $files) {
c:\powershell\msxsl.exe $files[$current] transform.xslt -o c:\powershell\output\$names[$current].xml
$current ++
}
我显然把for循环的主线弄乱了
MSXSL.EXE
使用-o
开关命名输出文件。我试图引用我的$names
数组的元素,但它不起作用。没有理由维护2个数组,也没有理由手动递增计数器
对于原始文件路径,使用FullName
属性,对于名称,单独使用name
:
$files = Get-ChildItem c:\powershell\ -Filter *.xml
foreach ($file in $files) {
c:\powershell\msxsl.exe $file.FullName transform.xslt -o $(Join-Path 'c:\powershell\output' $file.Name)
}