[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] PowerShell怎样按照段落合并?

文本如下,每个段落之间是用一个空行分割的,每个段落的行数不确定:

user: student1
pass: password1

user: student2
pass: password2
home: beijing

user: student3
pass: password3

希望把每个段落合并成一行,用逗号分割:

user: student1,pass: password1
user: student2,pass: password2,home: beijing
user: student3,pass: password3

$s =""
foreach ($str in cat e:\su\powershell\shell1\bb.txt) {
        if ("$str" -ne "") {
            $s=$s+","+$str        
        }else{
          $s.substring(1)   
          $s=""
        }                    
}
$s

TOP

本帖最后由 terse 于 2013-9-6 01:05 编辑

回复 1# DAIC
初涉PS  挺原始的写法 代码不规范和错误写法 请指正
总感觉应该有更简单的  你在查看下 对象方法
忘记加分隔符
再看下PS的正则 刚刚正则用不了
  1. $s = $null
  2. foreach ($str in cat c:\test\test.txt) {
  3. if ("$str" -eq "$null") {
  4. "$s"
  5. $s = $null
  6. }
  7. else
  8.         {
  9. if ("$s" -eq "$null") {
  10. $s = $str
  11. }
  12. else
  13.          {
  14. $s = $s,$str -join ";"
  15.          }
  16.         }
  17. }
  18. $s
复制代码

TOP

搞2遍,第一遍把回车替换成逗号,第二遍把行尾的逗号替换成回车.
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

返回列表