gpt4 book ai didi

string - 如何使用批处理或 PowerShell 从文本文件中删除换行符

转载 作者:行者123 更新时间:2023-12-04 23:37:56 25 4
gpt4 key购买 nike

本质上,我想从 file.txt 中读取内容

applebananacarrot

and write to newfile.txt so that it will have contents

apple banana carrot

I need to do this on a Windows computer on which I do not have install permissions.

I tried

set row=
for /f %%x in (file.txt) do set row=%row% %%x
echo row > newfile.txt

我尝试使用 PowerShell 语句(我无法运行 PowerShell 脚本)而不是 CMD 样式 for环形。
powershell -Command "(Gc file.txt) | Foreach-Object -Process {set row=%row% _$} | Out-File newFile.txt"

但两者都会产生一个空文件。
有没有办法做到这一点?

最佳答案

Get-Content将文件的内容作为已删除换行符的行数组返回,因此您需要做的(在 PowerShell 中)就是连接这些行并将结果写回文件:

(Get-Content 'input.txt') -join ' ' | Set-Content 'output.txt'

不推荐,但如果您必须批量执行此操作,则需要这样的操作:

@echo off
setlocal EnableDelayedExpansion
set row=
for /f %%x in (file.txt) do set "row=!row! %%x"
>newfile.txt echo %row%

请注意,此操作需要延迟扩展。没有它 %row%循环体中的 将在解析时扩展(当变量仍为空时),因此在循环完成后,您将只获得变量中输入文件的最后一行。启用延迟扩展(并使用 !row! 而不是 %row% )变量在运行时扩展,即在循环迭代期间,正如人们通常所期望的那样。

有关延迟扩展的更多信息,请参阅 Raymond Chen's blog .

关于string - 如何使用批处理或 PowerShell 从文本文件中删除换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47999562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com