我有一个放入文件的 powershell 脚本,对于E:的每个实例,它将用CBM-FS01|2013-02-03|E 替换它:
$filenames = @("C:\SCRIPT\CBM-FS01-E-20130203114114.txt.out")
foreach ($file in $filenames) {
$outfile = "$file" + ".sql"
Get-Content $file | Foreach-object {
$_ -replace "E:","CBM-FS01|2013-02-03|E:" `
} | Set-Content $outfile
}
如果您仔细观察,您会发现我正在根据文件名获取此信息。文件名将始终为MNEMONIC-MACHINE-DRIVE-YYYMMDDHHMMSS.txt。
修改几个文件的脚本很好,但我可能需要在一百个文件上运行它!有没有办法使用 powershell 来使用 GET-CHILDITEM cmdlet 并让 powershell 根据不同的文件名自动执行 -replace?
编辑: 我需要提取部分文件名,并将其插入文件中。例如,对于文件CBM-FS01-E-20130203114114.txt,我需要将助记符机器(CBM-FS01)和 YYYMMDD(2013-02-03)提取到文件中。因此
$_ -replace "E:","CBM-FS01|2013-02-03|E:" `