Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在批处理文件中将一个文件中的行中的所有字符精确打印到一个文件中_Batch File - Fatal编程技术网

Batch file 在批处理文件中将一个文件中的行中的所有字符精确打印到一个文件中

Batch file 在批处理文件中将一个文件中的行中的所有字符精确打印到一个文件中,batch-file,Batch File,在这里,我正在将1到5号线从一个文件打印到另一个文件。工作正常,但有一个小问题,线是从左侧修剪的,我不想修剪,它应该与输入文件相同 infle.txt: <RCO-XXX-AGENT> <CREATED>2018-06-28 10:19:09</CREATED> <FORMAT> <VARIABLE> <EOR>/010</EOR> <EOC>/009</EOC>

在这里,我正在将1到5号线从一个文件打印到另一个文件。工作正常,但有一个小问题,线是从左侧修剪的,我不想修剪,它应该与输入文件相同

infle.txt

<RCO-XXX-AGENT>
 <CREATED>2018-06-28 10:19:09</CREATED>
 <FORMAT>
  <VARIABLE>
   <EOR>/010</EOR>
   <EOC>/009</EOC>
   <CTR>5</CTR>
<RCO-XXX-AGENT>
<CREATED>2018-06-28 10:19:09</CREATED>
<FORMAT>
<VARIABLE>
<EOR>/010</EOR>
outfile.txt

<RCO-XXX-AGENT>
 <CREATED>2018-06-28 10:19:09</CREATED>
 <FORMAT>
  <VARIABLE>
   <EOR>/010</EOR>
   <EOC>/009</EOC>
   <CTR>5</CTR>
<RCO-XXX-AGENT>
<CREATED>2018-06-28 10:19:09</CREATED>
<FORMAT>
<VARIABLE>
<EOR>/010</EOR>

2018-06-28 10:19:09
/010

第二个循环没有用

它应该在以下方面发挥作用:

echo off
setlocal enabledelayedexpansion
call :Print_Lines > outfile.txt
endlocal
:Print_Lines
setlocal enabledelayedexpansion
set cur=0
for /f "delims==" %%i in (infile.txt) do (  
set /a cur=cur+1 
if !cur! geq 1 (
if !cur! leq 5 (
  echo %%i
 )
)
)
endlocal
exit /b 0
goto :eof

在您的示例中,不打印左侧的空格,因为它们被视为分隔符

我建议使用以下方法:

@Echo关闭
设置“Num=5”
“outfile.txt”

您可以根据需要将值调整为
Num

当您将
“tokens=*”
更改为
“delims=“
”时会发生什么情况?您必须将
goto:EOF
置于
之前:打印行
以避免此部分执行两次…如果您想要自己的批处理文件。
如果!狗屎!GEQ1(
和退出后的
goto:eof
一样也没用;退出意味着一个endlocal。更短的:
Set/a cur+=1
应该有一个
IF
命令来检查计数器是否大于5,然后使用
goto
来中断
FOR
命令。否则,如果文件有数百行g代码正在浪费时间处理所有额外的行。您是否打算让它运行两次
:PrintLines