【发布时间】:2021-03-31 14:58:44
【问题描述】:
我有 10 个 .txt 文件,所有这些文件都有以 01、02、03、04 等 2 位数字开头的行或记录。
File1.txt
01,333,abc,test2,44,55
02,883,def,test5,33,093
03....and so on.
-
现在,如果 powershell 发现一个文件不包含以“01”或“02”开头的记录,那么我想抛出一个错误或异常。
-
另外,如果有这样的文件,那么我不想将那个无效的格式文件复制到输出文件夹。我只想修改和复制有01或02的txt文件。
我该怎么做?
Get-ChildItem -Path 'C:\InputFiles\'-Filter '*.txt' -File | ForEach-Object {
$file = $_.FullName
$FileData = Get-Content $file
if($FileData[01] -notlike "01,"){
Write-Host $file "File is INVALID"
}
$data = switch -Regex -File $file {
'^01,' {
do stuff...
}
'^02,' {
do stuff...
}
default {$_}
}
}
$data | Set-Content -Path $file -Force
Copy-Item -Path $file -Destination 'C:\OutputFiles\' -Force
【问题讨论】:
-
"一个不包含以
01或02开头的记录的文件" - 所以第一行/记录以02,开头的文件可以吗?跨度> -
您的 .txt 文件听起来像 .CSV 文件...
-
@Mathias,如果 01 和 02 都不存在,那么这将是无效文件的完美案例。
-
@T-Me,这是一个.txt文件。
-
@nick235 但是,如果它的内容遵循csv 的规则,你可以把它当作一个;)
标签: powershell shell automation powershell-4.0 script