我的文件夹中有 50 个文件需要加载到 SQL。 在大多数文件(但不是全部)中,第一个字符是我想删除的主题标签,因为它给列映射带来了困难。
所以我不想循环遍历文件的所有行,只需删除第一个字符(以防它是主题标签)并保存文件。
所以我还需要分析第一个字符是否是主题标签。如果是,那么应该将其删除,如果不是,那么我应该简单地退出该文件。
最快的方法是什么?
我尝试过这些:
$Path = "D:\folder\myfolder" $OldText = "#" $NewText = ""
--> 这将循环遍历所有文件以查找主题标签
(Get-Content 'D:\folder\myfoldermyfile.txt' -raw) -replace '^.' | Set-Content 'D:\folder\myfoldermyfile.txt'
--> 这删除了每行的第一个字符,所以对我来说不好
我是 PS 初学者,因此感谢任何帮助。
因为您的代码使用
-raw
开关 Get-Content
,您将收到一个多行字符串,您可以在其上执行替换。类似这样的:
$Path = 'D:\folder\myfolder'
foreach ($file in (Get-ChildItem -Path $Path)) {
$content = Get-Content -Path $file.FullName # read each file as array of lines
$content[0] = $content[0] -replace '^#' # remove the hash character in the first line only
$content | Set-Content -Path $file.FullName
}