我制作了这个批处理文件,然后我想用批处理制作一个安装程序,但后来我不得不制作包含代码部分的批处理文件。
我试过用这个:
cat > %drev%:\Notekeeper\Program.bat << EOF
script script script
script script script
EOF
然后我意识到我需要在每一行之前添加回声。当你有300多行代码时,这就是一个问题...
那么,在我不必在所有事情之前添加echo
的情况下,有更简单的方法吗?
答案 0 :(得分:3)
这是一种方法:
git ls-remote
可以对此代码进行多项修改,例如:
注意:在其他类型的文件中包含代码是在名为@echo off
setlocal
rem Get the number of the "<resource>" line
for /F "delims=:" %%a in ('findstr /N "<resource>" "%~F0"') do set "start=%%a"
rem Skip such number of lines and show the rest of this file
(for /F "usebackq skip=%start% delims=" %%a in ("%~F0") do echo %%a) > Program.bat
goto :EOF
<resource>
script script script
script script script
的部分中管理的,所以我只使用了相同的术语。
答案 1 :(得分:1)
@echo off & setlocal enabledelayedexpansion
(
scriptA
scriptB
)2>>fileA.txt:stream1
for /f %%p in (fileA.txt:stream1) do (
set a=%%p
set a=!a:'=!
echo !a!>> fileA.txt
)
上面的脚本将执行:
scriptA
.....重定向到fileA.txt
的stream1(你看不到)由于fileA.txt
的stream1将填充:
'scriptA'不是一个被重新命名的.....
for
循环将删除不需要的文本并将其重定向到
正确的fileA.txt
这是另一种方式,但只会缩短>>"file.txt"
,而不是echo
(
echo script
echo script
echo script
)>>"file.txt"
取自this Stack Overflow question
修改强>
正如@Aacini评论的那样,需要转义特殊字符。