本质上,我想从 file.txt 中读取内容
apple
banana
carrot
并写入 newfile.txt 以便它包含内容
apple banana carrot
我需要在没有安装权限的 Windows 计算机上执行此操作。
I tried
set row=
for /f %%x in (file.txt) do set row=%row% %%x
echo row > newfile.txt
我尝试使用 PowerShell 语句(我无法运行 PowerShell 脚本)而不是 CMD 样式for
loop.
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%
请注意,延迟扩展是required为了这个工作。没有它%row%
循环体中的 会在解析时扩展(当变量仍为空时),因此循环完成后,您将仅得到变量中输入文件的最后一行。启用延迟扩展(并使用!row!
代替%row%
)变量在运行时扩展,即在循环迭代期间,如通常所期望的那样。
有关延迟扩展的更多信息,请参阅雷蒙德·陈的博客 https://blogs.msdn.microsoft.com/oldnewthing/20060823-00/?p=29993/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)