Batch file 删除批处理(.bat)文件中字符串的一部分

Batch file 删除批处理(.bat)文件中字符串的一部分,batch-file,batch-rename,Batch File,Batch Rename,我需要删除字符串的一部分,以便使用该消息。尝试了许多不同的方法都没有成功。提前谢谢 我想我有这样一个信息: SET MESSAGE="The key sequence '1' in 'http://www.myschema.com/dummy:dummy_PK' Keyref fails to refer to some key." 我需要删除以下内容: in 'http://www.myschema.com/dummy:dummy_PK' Keyref 然后得到这样的结果: "The ke

我需要删除字符串的一部分,以便使用该消息。尝试了许多不同的方法都没有成功。提前谢谢

我想我有这样一个信息:

SET MESSAGE="The key sequence '1' in 'http://www.myschema.com/dummy:dummy_PK' Keyref fails to refer to some key."
我需要删除以下内容:

in 'http://www.myschema.com/dummy:dummy_PK' Keyref
然后得到这样的结果:

"The key sequence '1' fails to refer to some key."
请注意,“in”和“Keyref”之间的文本是可变的,这意味着我必须找到一种方法来删除这两个字符串之间的文本(包括)。尝试以下方法:

@echo off
setlocal

SET "MESSAGE=The key sequence '1' in 'http://www.myschema.com/dummy:dummy_PK' Keyref fails to refer to some key."
SET "sFind=in 'http://www.myschema.com/dummy:dummy_PK' Keyref "
call set New=%%Message:%sFind%=%%
echo %New%

假设
中的
Keyref
只出现一次,而
|
从未出现,则:

@echo off
setlocal enableDelayedExpansion
set message="The key sequence '1' in 'http://www.myschema.com/dummy:dummy_PK' Keyref fails to refer to some key."
set "message=!message: in =|!"
set "message=!message: Keyref =|!"
for /f "delims=| tokens=1,3" %%A in ("!message!") do set "message=%%A %%B"
set message

从理论上讲,您的代码是有效的,我忘记说的是:''是变量。。。这意味着我不仅要删除“in”和“Keyref”,还要删除它们之间的文本变量文本是否始终具有URL格式且不带空格?是的!先谢谢你