标题: [问题求助] PowerShell如何把两个文件交替合并? [打印本页]
作者: DAIC 时间: 2013-7-7 18:55 标题: PowerShell如何把两个文件交替合并?
最近工作中遇到很多文本处理的问题,所有想学习PowerShell实现自动化。
文件a.txt:
1
2
3
文件b.txt:
a
b
c
如何合并之后生成c.txt:
1
a
2
b
3
c
作者: PowerShell 时间: 2013-7-7 22:09
$内存数组 = 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]
能看明白么?
作者: DAIC 时间: 2013-7-8 20:07
回复 2# PowerShell
公司服务器没有安装中文语言包,我改成了这个样子:- $ArrayA = Get-Content 'a.txt'
- $ArrayB = Get-Content 'b.txt'
- [array]$ArrayC = $ArrayA[0] + $ArrayB[0] + $ArrayA[1] + $ArrayB[1] + $ArrayA[2] + $ArrayB[2]
- Out-File -InputObject $ArrayC -FilePath c.txt
复制代码
运行之后得到c.txt的内容都跑到一行去了:
1a2b3c
不是我需要的结果
作者: PowerShell 时间: 2013-7-8 21:05
$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
作者: DAIC 时间: 2013-7-9 16:35
回复 4# PowerShell
1、文件内容比较多的时候,比如成百上千行,循环语句怎么写呢?
2、两个文件的行数可能不相等,代码如何兼容这个情况呢?
作者: PowerShell 时间: 2013-7-9 18:52
可以用 for,foreach 来循环 $内存数组[$m] + $另一个内存数组[$n]
用for的话,数组下标从0到数组的length
$aaa[0..$aaa.length]
行数不想等的话,你想用什么逻辑规则来兼容呢?
作者: DAIC 时间: 2013-7-10 21:04
回复 6# PowerShell
我尝试写了个for循环,但是得到的结果又跑到一行去了。如何修改呢?- $ArrayA = Get-Content 'a.txt'
-
- $ArrayB = Get-Content 'b.txt'
-
- [array]$ArrayC
-
- for ($i=0; $i -le $ArrayA.length; $i++)
- {
- $ArrayC += $ArrayA[$i]
- $ArrayC += $ArrayB[$i]
- }
-
- Out-File -InputObject $ArrayC -FilePath c.txt
复制代码
作者: PowerShell 时间: 2013-7-11 21:47
初始化数组用
$ArrayC = @()
你试试灵不
手册--》主题 about_Arrays
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |