我在不同的子文件夹中有多个XML文件,我希望使用Powershell将它们转换为CSV,并使用原始文件名将它们输出到不同的文件夹中。
$xmlfilepaths = Get-ChildItem -Path "\\path\to\files\" -Recurse | where {$_.Name -like '*.xml'}
foreach ($xmlpath in $xmlfilepaths.FullName)
{
$xmlcontent = Get-Content -Path $xmlpath
}
这部分工作,但我想做的是输出这些CSV的到另一个文件夹,并保持原来的XML文件的文件名作为文件名。
\路径\到\文件\阿尔法\测试123.xml-〉\路径\到\输出\文件\测试123.csv\路径\到\文件\布拉沃\生产789.xml-〉\路径\到\输出\文件\生产789.csv
我的问题是,一旦进入“foreach”,如何从$xmlpath或$xmlfilepaths变量中“拉”出文件名并传递它沿着以使我的文件名输入与文件名输出相同?
2条答案
按热度按时间iszxjhcz1#
原始文件名包含在
$xmlfilepaths
中存储的每个对象的Name
特性中。将变量重命名为更准确的名称可能有助于使操作更明显:
wpx232ag2#
要获取新文件名,请使用以下命令: