我需要在文件中搜索第一次出现的字符串。
我有这个php文件:
<?php
#---------------------------------------------------------------------------------------
#
#
# Gpl V2 and further license updates applies to this code
#
# 2015/05/21
#
#-------------------------------------------------------------------------------
error_reporting(0);
$version = '1.0 Alpha';
//some code
echo "\r\n===== ".$argv[0]." ".$version.": Select a channel =====: ";
我需要找到这个值1.0 Alpha。在bat文件中我写了这段代码。
for /f "tokens=*" %%x in ('findstr "$version" %~1') do (
set str=%%x
)
但他找到了所有第二个字符串:echo“\ r \ n =====”。$ argv [0]。“”。$ version。“:选择一个频道=====:”;
解决方案?
最后一点,脚本可以从$version = '1.0 Alpha';
更改为$version = "1.0 Alpha";
报价可能会改变。
答案 0 :(得分:2)
您需要在找到第一次出现的字符串后退出循环。试试这个:
for /f "tokens=*" %%x in ('findstr "$version" %~1') do (
set str=%%x
goto :EndFor
)
:EndFor
set str=%str:"='%
for /f "tokens=2 delims='" %%x in ('echo(%str%') do set str=%%x
echo(str=%str%
pause
答案 1 :(得分:0)
这可以在一个步骤中完成,让FOR / F循环解析出实际的版本字符串。
奇数语法指定'
和"
作为标记分隔符,并查找第二个标记。
@echo off
setlocal
for /f tokens^=2^ delims^='^" %%V in ('findstr $version "%~1"') do (
set "version=%%V
goto :break
)
:break
echo version=%version%