有没有办法循环一个文本文件,它会在每行前面添加一个EMPTY SPACE ?
commit.txt
commit c9bee
Merge: 7db
Author: TOM
Date: Fri Mar 13
Author: TIM
output.txt的
commit c9bee
Merge: 7db
Author: TOM
Date: Fri Mar 13
Author: TIM
答案 0 :(得分:1)
- 在此处提及不需要转义空格,您可以使用ECHO 1
获取(空格)1。
尝试使用^
例如:
C:\ Scripts> echo ^ string
的字符串
C:\ Scripts> echo string
的字符串
-edit,当你急于完全阅读问题时会发生这种情况!
试试这个:
C:\ Scripts> for / f%a in(input.txt)do echo ^%a
C:\Scripts>echo test1
test1
C:\Scripts>echo test2
test2
答案 1 :(得分:1)
这是一个解决方案:
for /f "delims=" %i in (file) do @echo %i
请注意,如果在脚本中使用此百分比,则必须加倍(与交互式使用相反)。
答案 2 :(得分:1)
试试这个。这"覆盖"原始文件。如果你想把名字保存为output.txt只要注释掉对Overwriteoriginal的调用
@echo off
REM makes sure the user passed in a file name
if [%1]==[] (
echo Must pass in a file name
) else (
Call:AddSpaceToEveryLine %1
Call:OverwriteOriginal %1
echo processed %1
)
GoTo:EOF
:OverwriteOriginal
REM overwrites original file with spaced file
del %1
rename output.txt %1
GoTo:EOF
:AddSpaceToEveryLine
REM there is actually one space after the equals sign
set space=
for /f "tokens=*" %%a in (%1) do (
echo %space%%%a >> output.txt
)
GoTo:EOF
答案 3 :(得分:0)
它可以很容易地完成,并且不需要for循环。只需声明一个变量,然后在代码的末尾几次将声明的变量回显到输出文件中。在这种情况下,我正在发送到名为c:\sample.txt
的文件。这是一个示例:
@echo off
set blank=
:: Your main code goes here
echo. %blank% >> c:\sample.txt
echo. %blank% >> c:\sample.txt
echo. %blank% >> c:\sample.txt
echo. Author: TIM >> c:\sample.txt