我需要从Windows批处理脚本中的字符串中的单词开始删除所有内容。 例如,如果我有字符串:批量替换字符串中的正则表达式
This is my line delete from here.
我想删除一切以单词删除,我需要获得:
This is my line.
我已经tryed这一点:
set line="This is my line delete from here"
set word="delete"
set delete="!word!*";
set line=!line:%delete%=!
它不工作,我尝试了,我已经激活延迟扩展,我不知道这是否:“set line =!line:%delete%=!”作品。我也试过这个“set line =!line:!delete!=!”但也不起作用。我是批处理脚本新手。
UPDATE: 在一个循环我只能做延迟扩张,该代码不起作用:
@ECHO OFF
setlocal
for /F "delims= " %%A in (temp.txt) do (
set "line=This is my line delete from here"
ECHO original:%line%:
set "word=delete"
CALL set "delete=%%line:*%word%=%%"
ECHO delete the "%word%%delete%" part
CALL set "line=%%line:%word%%delete%=%%"
ECHO final :%line%:
)
endlocal
输出:
original::
=%" was unexpected at this time.
delete the "" part
=%" was unexpected at this time.
final ::
但如果我删除了从代码以上,输出是:
original:This is my line delete from here:
delete the "delete from here" part
final :This is my line :
我的问题是我怎么能在循环中做同样的事情,用d消除扩张,正常扩张。换言之,我需要在替换表达式中的内部和外部(设置“delete =!line:*!word!=!”,不起作用)两个变量的后期扩展。我找不到任何文件。 谢谢。
谢谢您的回答。这在单独的批处理脚本中起作用,但是如果将其包含在内部,则它不起作用。在我的内部,我只能做延迟扩展,并且我不知道如何翻译此代码以适应延迟扩展。 –
如果我们掌握了所有的细节,这些问题总是更容易,否则它会成为一系列永无止境的补充问题,可能会严重影响所采取的方法。 – Magoo
我不能在我的代码中扩展像这样的变量%var%,但是像这样!var !,我想知道哪种语法只是通过使用延迟扩展来删除子字符串。 –