我需要在.bat文件中用<?php
替换.txt文件中第一次出现的<?php this is a test
。
如果再次出现<?php
,则不应替换它们
我该怎么办呢。
或者(虽然更危险)...我可以删除文件的第一行(假设它将是<?php
)并用上面的代替它,但我不知道该怎么做或者批量生产。
答案 0 :(得分:0)
您无法批量执行这些类型的(高级)字符串操作,您需要更强大的语言,例如编写.NET控制台应用程序,或使用vbscript或powershell等脚本语言。
答案 1 :(得分:0)
是的,您可以使用类似
之类的(高级)字符串操作@echo off
set "infile=C:\temp\myFile.php"
set "outfile=C:\temp\myOut.php"
setlocal DisableDelayedExpansion
set "first=1"
(
for /f "delims=" %%A in ('"findstr /n ^^ %infile%"') do (
set "line=%%A"
setlocal EnableDelayedExpansion
set "line=!line:*:=!"
if defined first (
if defined line (
set "replace=!line:<?php=<?php this is a test!"
if !line! NEQ !replace! (
set "first="
set "line=!replace!"
)
)
)
(echo(!line!)
if not defined first (
endlocal
set "first="
) ELSE (
endlocal
)
)
) > %outfile%