批量错误输入到文件中

时间:2014-05-11 16:37:22

标签: php html batch-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'); } 
?>

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

感谢您的时间,我希望您能提供帮助

1 个答案:

答案 0 :(得分:1)

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

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

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

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