Batch file 批量写入文件

Batch file 批量写入文件,batch-file,Batch File,我已经为几个朋友和我批量设置了一个应用程序,带有自动更新系统,但我需要在自动更新系统中添加一行代码。我决定完全重写该文件,在from中向每一行添加“echo”和在每一行末尾添加“>>text.txt”,并在需要时添加“^”,这需要很长时间,因此我想知道是否有更简单的方法将大量代码批量写入文件。 例如: 或者,如果有一种方法可以简单地在文件中的特定位置添加一行新代码,这也会有所帮助! 提前谢谢 以下是如何通过删除所有这些单独的写进程,更轻松、更高效地完成当前代码的工作 @(Echo@Echo检查更

我已经为几个朋友和我批量设置了一个应用程序,带有自动更新系统,但我需要在自动更新系统中添加一行代码。我决定完全重写该文件,在from中向每一行添加“echo”和在每一行末尾添加“>>text.txt”,并在需要时添加“^”,这需要很长时间,因此我想知道是否有更简单的方法将大量代码批量写入文件。 例如:

或者,如果有一种方法可以简单地在文件中的特定位置添加一行新代码,这也会有所帮助!
提前谢谢

以下是如何通过删除所有这些单独的写进程,更轻松、更高效地完成当前代码的工作

@(Echo@Echo检查更新。。。
Echo@(Echo 1.4^)^>^>“new.txt”
Echo@(%\uuuuu AppDir\uuuuuu%ping.exe LocalHost-n 2^)^>NUL
)>“text.txt”

还有其他的可能性,但鉴于你问题中缺乏信息,我不愿意在此时进一步阐述。

如果我理解正确,那么你可以做以下工作:

  • 在批处理文件中,在要输出的每行文本前加上
    (这构成一个将被忽略的无效标签)
  • 然后使用以下代码:

    rem//重定向到文件:
    >“text.txt”(
    rem//查找以“:”开头的所有行,并在其上循环:
    对于/F“delims=“%%T in('findstr“^:::”“%f0”)执行以下操作(
    rem//存储当前迭代的行:
    设置“TEXT=%%T”
    rem//切换延迟扩展以避免丢失“!”:
    setlocal EnableDelayedExpansion
    rem//Remove`:`前缀并输出剩余行:
    回显(!TEXT:::=)!
    端部
    )
    )
    
    如果要在返回的文本中启用百分比扩展,请将
    设置“TEXT=%%T”
    替换为
    调用集“TEXT=%%T”
    (例如,它可以包含
    %~nx0
    ,然后扩展为脚本的文件名)

对于批处理文件(
/?
)中的帮助系统,我经常使用这种技术(没有输出重定向)。

您的问题

我需要一种不添加
echo
>text.txt

脚本利用了行延续字符,即插入符号
^

插入符号
^
后的第一个字符总是转义,换行字符也是如此:

@echo off
SETLOCAL EnableDelayedExpansion

call :init

>text.txt (
echo @echo off%NL%
Checking for updates...%NL%
>^>new.txt echo 1.4%NL%
>NUL ping localhost -n 2
)

ENDLOCAL
exit /b

:init
( set LF=^
%= 0X0D FORM FEED =%
)
::0X0A Carriage Return
FOR /F %%a in ('copy /Z "%~f0" nul') do set "CR=%%a"

::Create newline/line continuation character
set ^"NL=^^^%LF%%LF%^%LF%%LF%^^" %= Unix-Style Endings \n =%
::set ^"NL=%CR%^^^%LF%%LF%^%LF%%LF%^^" %= Windows-Style Endings \r\n =%
exit /b
变量
%LF%
是一个转义换行符,
%NL%
是一个转义的
%LF%
加上一个转义插入符号
^
,用于换行

代码

>^>new.txt echo 1.4%NL%
>NUL ping localhost -n 2
可能看起来很奇怪。为什么第一个插入符号没有转义?
因为
%NL%
已将其转义。
资料来源:


您的具体任务不清楚,您只能问一个问题。请编辑您的问题以提供实际的单个任务,任何愿意提供特定帮助的人都可以复制此任务。请搜索此网站,您不太可能有以前从未问过或回答过的要求。可能有兴趣如果你有时间,请接受一个答案,或者至少用这个答案来回答你的问题。
>^>new.txt echo 1.4%NL%
>NUL ping localhost -n 2