批量错误输入到文件


Batch Error input into file

@echo off
setlocal EnableDelayedExpansion
for %%f in (inbox.html) do (
   findstr /N ^^ "%%f" > "%%~Nf.tmp"
   echo :EOF>> "%%~Nf.tmp"
   call :InsertLine1 < "%%~Nf.tmp" > "%%~Nf.out"
   REM del "%%f"
   REM del "%%~Nf.tmp"
   REM ren "%%~Nf.out" "%%~Nf.php"
)
goto :EOF
:InsertLine1
for /L %%i in (1,1,0) do (
   set /P line=
   echo(!line:*:=!
)
echo ^<?ph^p
echo ^if(!$user->is_logged_in())^{ 
echo ^header('Location: login.php'); ^} 
echo ^?^>
:copyRestOfLines
   set /P line= 
   if "!line!" == ":EOF" exit /b
   echo(!line:*:=!
goto copyRestOfLines

这是它应该生成的批处理代码

<?php
if(!$user->is_logged_in()){ 
 header('Location: login.php'); } 
 ?>

但是我得到

<?php
header('Location: login.php'); } 
?>

如果有人可以帮助我,我将非常感激,因为这节省了我编辑13000个文件,添加了三行代码。

谢谢你的时间,我希望你能帮助

我认为,你没有得到转义字符的概念(通过^)

用于转义特殊字符。在您的示例中需要转义的唯一特殊字符是><

echo ^<?php
echo if(!$user-^>is_logged_in()){ 
echo header('Location: login.php'); } 
echo ?^>

PS:不要忘记删除is_logged_in()){文件