我有一个字符串,如'ntuser.dat ntuser.dat.log ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt'
我想删除指定字符串中的所有字符,直到'advice.20131024'为止
如何使用Windows批处理命令执行此操作?
我还需要将结果字符串保存在变量
中
提前谢谢
答案 0 :(得分:4)
设置字符串,
更改它以删除所有内容,直到advice
结束并将其替换为advice
然后回声其余的字符串。
set "string=ntuser.dat ntuser.dat.log ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt"
set "string=%string:*advice=advice%"
echo "%string%"
答案 1 :(得分:1)
(a)用字符串搜索
set text=ntuser.dat ntuser.dat.log ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt
:loop
if "%text:~0,6%"=="advice" goto exitLoop
set text=%text:~1%
goto loop
:exitLoop
echo %text%
(b)with for循环
@echo off
setlocal enableextensions enabledelayedexpansion
set text=ntuser.dat ntuser.dat.log ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt
set result=
for %%f in (%text%) do (
set x=%%f
if "!x:~0,6!"=="advice" (
set result=%%f
) else (
if not "!result!"=="" set result=!result! %%f
)
)
echo %result%
(c)见foxidrive答案(我总是忘记)