@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个文件,为他们添加三行代码。
感谢您的时间,我希望您能提供帮助
答案 0 :(得分:1)
我认为,你没有得到转义字符的概念(^
)
它用于转义特殊字符。在您的示例中,唯一需要转义的特殊字符是>
和<
echo ^<?php
echo if(!$user-^>is_logged_in()){
echo header('Location: login.php'); }
echo ?^>
PS:不要忘记删除文件is_logged_in()){