我有一个文件夹列表,每个文件夹都采用以下格式:custID_invID_prodID。对于每个文件,我需要根据'_'将其分成几个部分。目前我有这个代码
$files = Get-ChildItem test *.txt
$Part = $files.Split(';')[$($files.Split('_').Count-1)]
Write-Host "${Part}"
问题是$files
似乎是所有文件的列表,我需要它自己运行每个文件。任何人都可以提供一些关于如何为整个文件夹执行此操作的指示吗?
答案 0 :(得分:1)
“问题是看起来$ files是所有文件的列表,我需要它自己运行每个文件。”
这是正确的,在文件夹上运行get-childitem将为您提供所有文件(和子文件夹)的列表。为了逐个浏览它们,你需要一个循环:
$file = @()
$files = Get-ChildItem Test *.txt
foreach($f in $files)
{
$file += ([String]$f).Split("_")
$count = ([String]$f).Split("_") | Measure-Object | select count
}
if($count.count -eq 3) {
for($i=2; $i -lt $file.length; $i+=3) {
$file[$i] = $file[$i].trimend(".txt")
}
}
答案 1 :(得分:0)
我能够通过使用此代码解决此问题:
$Part = $file.name.Split('_')[$($file.name.Split('_').Count-1)]
Write-Host "${Part}"