0

我有一些自动化任务,我想每天对一个 txt 文件目录执行。这包括:

1.将文件名追加到txt文件的第一行

2.用分号替换制表符分隔的内容(查找和替换)

3.将文件保存到子目录

以下代码可以进行查找和替换,但我无法将输出保存到其他目录,而是覆盖了原始文件。是否有不同的命令可以让我将输出保存到不同的目录?

(Get-Content "C:\Input\*.txt") -replace "`t", ";" | Set-Content "C:\Input\*.txt"

我目前有一个执行第 1 项(附加文件名)的 BAT,但如果可以将其包装到 Powershell 脚本中,我认为这将是一种更清洁的做事方式。任何帮助表示赞赏!

4

2 回答 2

1

对 Vivek 的答案进行了轻微修改,这似乎有效。

Get-ChildItem "C:\Input\*.txt" | where {$_.Name -match ".txt"} | % {((Get-Content $_) -replace "`t", ";") | Set-Content "C:\Input\Upload\$($_.Name)"}
于 2018-06-02T13:19:26.100 回答
0

未经测试,但你可以试试这个 -

Get-ChildItem "C:\Input\" | where {$_.Name -match ".txt"} | % {((Get-Content $_) -replace "`t", ";") | Set-Content "DifferentDirectoryPath\$($_.Name)"}

如果您的Input文件夹有要迭代的子文件夹,那么您可以使用它 -

Get-ChildItem "C:\Input\" -Recurse -Include "*.txt" | % {((Get-Content $_) -replace "`t", ";") | Set-Content "DifferentDirectoryPath\$($_.Name)"}
于 2018-06-02T10:28:08.427 回答