操作文本文件中的字符串

时间:2014-10-22 12:58:42

标签: string powershell batch-file csv

这是我的情况:

我们依靠用户点击一些.bat并进行每日备份。

我做了一些批处理编程,现在当他们(被迫)备份时,它会在其中留下一个日志文件并拥有服务器文件夹。是的,他们需要被迫,否则他们只是赢得了g.damn备份...欢迎来到我的公司.-。

然后,经过一些研究,我开发了另一个蝙蝠,检查文件是否过时并将其打印在文本文件中。

这是我现在拥有的那种文件:

文件: DailyBkp

内容:

  

" \约翰\ log.log"

     

" \ Department1 \安迪\ log.log"

     

" \ Department1 \尼科尔\ log.log"

     

" \ Department2 \安\ log.log"

档案部门

内容:

  

Department1

     

Department2

     

...

很好,经过powershell的一些字符串处理后,我设法得到DailyBkp内容:

John 

Department1 Andy 

...

请注意,无论我使用什么装饰,它都有一个开头的空间和另一个末尾的空间......

现在我有了这个设置:SERVER > E:\Backup\

内部备份我们有"Department 1" ... "Dep.-N"

每一个内部:"User-Lastname1" .. "User-lastname-N"

我需要或者我想要的是使用powershell来获取包含DailyBkp字符串的"Dept_User"的内容,并将条目导出到csv文件,如下所示:

 COLUMN_Name      COLUMN_Dept
 Andy             Department1

那么,我该怎么做?我无法在互联网上找到任何使用文本文件的内容。

2 个答案:

答案 0 :(得分:0)

所以假设我正确地阅读了你的问题,你有一个看起来像这样的DailyBkp文件:

Department1 Andy
Dpeartment2 Jim
...

得到你想要的东西你可以读出每一行,然后将它吐出来,然后在这样的csv中吐出来:

"COLUMN_Name,COLUMN_Dept" | out-file <path>\outfile.csv
$bkpFile = get-content $dailyBkpFile
$bkpFile | ForEach-Object {$line = $_.split(" ")
"$($line[1]),$($line[0])" | out-file <path>\outfile.csv -Append}  

输出应如下所示:

 COLUMN_Name,COLUMN_Dept
 Andy,Department1
 Jim,Department2

答案 1 :(得分:0)

在这里做一个快速的帖子。
我的问题得到了回答,谢谢 而且,如果有人对Powershell编程感兴趣,可以通过 Tobias Weltner 谷歌掌握Powershell ;这是一本免费的书,有很多解释。