(Get-Content -Path "1.txt" -Raw) -replace '(?m)^[ \t]*(//|#).*$\r?\n?','' -replace '[\r\n]{2,}',"`n" | Set-Content .\2.txt; notepad .\2.txt
# 打开powershell
#读取 1.txt 文件,不论"//" 或者 "#"之前的n个空格,删除以 "//" 或者 "#" 开头的
#不论回车之前的n个空格,将多次回车替换为一次
#用notepad打开
1. (Get-Content -Path "1.txt" -Raw)
Get-Content -Path "1.txt":这个命令从1.txt文件中读取所有内容。默认情况下,Get-Content是按行读取的,但使用-Raw参数时,它会将文件的所有内容作为一个单独的字符串加载,而不是按行分割。这样可以更方便地进行整体的正则替换操作。
2. -replace '(?m)^[ \t]*(//|#).*$\r?\n?',''
-replace:这是一个替换操作,后面跟着的是一个正则表达式和一个替换字符串。(?m):这个是多行模式(multiline mode)的标志。它使得^和$正则符号匹配每行的开始和结束,而不是整个文本的开始和结束。^[ \t]*(//|#).*$:这段正则表达式匹配所有以注释符号(//或#)开头的行,前面可能有任意数量的空格或制表符([ \t]*)。具体解释:^:匹配行的开头。[ \t]*:匹配零个或多个空格或制表符。(//|#):匹配注释符号//或#。.*:匹配注释符号后面的所有字符。$\r?\n?:匹配行尾的换行符(\r?\n?允许 Windows 和 Unix 风格的换行符)。这个正则表达式的作用是匹配以
//或#开头的注释行,并将它们替换为空字符串(即删除这些行)。
3. -replace '[\r\n]{2,}',"n"`
**
-replace '[\r\n]{2,}',"n"**:这个替换操作用于将连续的多个换行符(\r\n或\n)替换为单一的换行符"n"。[\r\n]{2,}:匹配两个或更多连续的换行符(无论是\r\n或者\n)。"`n":将匹配的多重换行符替换成一个单独的换行符"n"`。
4. Set-Content .\2.txt
Set-Content .\2.txt:将经过替换处理后的文本写入到2.txt文件中。如果文件已经存在,它会覆盖原文件。
5. notepad .\2.txt
notepad .\2.txt:最后,使用notepad打开2.txt文件。notepad是 Windows 系统的默认文本编辑器。如果你不希望使用记事本,可以将它替换成其他打开文件的程序。
总结
这段 PowerShell 脚本的流程是:
读取
1.txt文件的内容为一个单独的字符串。删除所有注释行(以
//或#开头的行)。将连续的换行符替换成单个换行符。
将处理后的内容保存到
2.txt文件中。用记事本打开
2.txt文件查看结果。
这样就可以去除注释行并整理文件内容,使其更加整洁和规范。
