脚本在Powershell中截断整个文件

时间:2015-11-09 19:09:01

标签: powershell

我在Powershell中有一个脚本,我遇到了一些问题。

$Path = 'C:\Projects\Powershell\TEst'
$MiddleName = 'torres'

CD $Path


Get-ChildItem .\ -filter *PCPLink*| ForEach-Object {
$content = Get-Content $_.FullName  | 
ForEach-Object {$_ -replace $MiddleName, $MiddleName[0]} |out-file $_.FullName -force
}

这很直接,我遇到的问题是

我需要这个来查找共享文件名过滤器的多个文件,对于每个文件我需要它来吐出一个具有相同名称的文件,并且只截断第一个字符值$MiddleName不是整个文件

但是当我更改脚本以输出$ _。Fullname时,文件为空。我错过了什么?

所以文件看起来像

Torres
Tom
Tony
Tickle

我期待

T
Tom
Tony
Tickle

此脚本的实际输出为空白

DOES 选择我过滤后匹配的两个文件。

1 个答案:

答案 0 :(得分:2)

你正在Get-Content循环播放ForEach循环,然后转到Out-File,这一切都很好,但是当你到达Out-File {时{1}}对象不再代表受影响的文件,它现在是$_ cmdlet中文件的内容。

Get-Content