找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25947|回复: 7

[问题求助] PowerShell如何把两个文件交替合并?

[复制链接]
发表于 2013-7-7 18:55:58 | 显示全部楼层 |阅读模式
最近工作中遇到很多文本处理的问题,所有想学习PowerShell实现自动化。

文件a.txt:
1
2
3

文件b.txt:
a
b
c

如何合并之后生成c.txt:
1
a
2
b
3
c
发表于 2013-7-7 22:09:06 | 显示全部楼层
$内存数组 = Get-Content 'c:\文件a.txt'
$另一个内存数组 =  Get-Content 'c:\文件b.txt'
[array]$第三个内存数组 = $内存数组[0] + $另一个内存数组[0] + $内存数组[1] + $另一个内存数组[1]
等等
Out-File  -InputObject  $第三个内存数组  -FilePath c:\123.txt

数组下标可以是变量,如 $内存数组[$m] + $另一个内存数组[$n]
可以用 for,foreach 来循环 $内存数组[$m] + $另一个内存数组[$n]

能看明白么?
 楼主| 发表于 2013-7-8 20:07:40 | 显示全部楼层
回复 2# PowerShell


公司服务器没有安装中文语言包,我改成了这个样子:
  1. $ArrayA = Get-Content 'a.txt'
  2. $ArrayB =  Get-Content 'b.txt'
  3. [array]$ArrayC = $ArrayA[0] + $ArrayB[0] + $ArrayA[1] + $ArrayB[1] + $ArrayA[2] + $ArrayB[2]
  4. Out-File  -InputObject  $ArrayC  -FilePath c.txt
复制代码
运行之后得到c.txt的内容都跑到一行去了:
1a2b3c
不是我需要的结果
发表于 2013-7-8 21:05:52 | 显示全部楼层
$ArrayA = Get-Content 'a.txt'

$ArrayB =  Get-Content 'b.txt'

[array]$ArrayC += $ArrayA[0]
$ArrayC += $ArrayB[0]
$ArrayC += $ArrayA[1]
$ArrayC += $ArrayB[1]
$ArrayC += $ArrayA[2]
$ArrayC += $ArrayB[2]

Out-File  -InputObject  $ArrayC  -FilePath c.txt
 楼主| 发表于 2013-7-9 16:35:35 | 显示全部楼层
回复 4# PowerShell


1、文件内容比较多的时候,比如成百上千行,循环语句怎么写呢?
2、两个文件的行数可能不相等,代码如何兼容这个情况呢?
发表于 2013-7-9 18:52:20 | 显示全部楼层
可以用 for,foreach 来循环 $内存数组[$m] + $另一个内存数组[$n]
用for的话,数组下标从0到数组的length
$aaa[0..$aaa.length]

行数不想等的话,你想用什么逻辑规则来兼容呢?
 楼主| 发表于 2013-7-10 21:04:15 | 显示全部楼层
回复 6# PowerShell


我尝试写了个for循环,但是得到的结果又跑到一行去了。如何修改呢?
  1. $ArrayA = Get-Content 'a.txt'

  2. $ArrayB =  Get-Content 'b.txt'

  3. [array]$ArrayC

  4. for ($i=0; $i -le $ArrayA.length; $i++)
  5. {
  6.     $ArrayC += $ArrayA[$i]
  7.     $ArrayC += $ArrayB[$i]
  8. }

  9. Out-File  -InputObject  $ArrayC  -FilePath c.txt
复制代码
发表于 2013-7-11 21:47:30 | 显示全部楼层
初始化数组用
$ArrayC = @()
你试试灵不

手册--》主题     about_Arrays
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:11 , Processed in 0.018274 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表