我需要创建一个写入文本文件(可能包括变量)的批处理文件。在带有 bash 的 Unix 中,这是微不足道的:
#!/bin/bash
ver="1.2.3"
cat > file.txt <<EOL
line 1, ${ver}
line 2
line 3
...
EOL
使用批处理文件执行此操作的最简单方法是什么?
注意:有一个使用“heredoc”例程的完整解决方案,位于Windows 批处理的heredoc?但它对于临时使用来说似乎太复杂了。我正在寻找一种快速而简单的方法。
如果只有一个数据块(文本),则以下工作正常
@ECHO OFF
set string=beautyful
REM get linenumber for Data:
for /f "tokens=1 delims=:" %%a in ('findstr /n /b "REM StartData" "%~f0"') do set ln=%%a
REM print Data (use call to parse the line and evaluate variables):
(for /f "usebackq skip=%ln% delims=" %%a in ("%~f0") do call echo %%a)>"new.txt"
type "new.txt"
goto :eof
REM StartData
hello %string% world
line 2
line 3
如果数据中没有变量,则省略call
。优点:不需要逃避任何事情。即使通常有毒的角色也能起作用(而不是for
循环,你也可以只使用more +%ln% "%~f0"
)。遗憾的是,当您使用call
解析变量的行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)