2014-04-15 42 views
1

我有一堆DIV中有太多信息。我想在文本文件中搜索DIV,然後刪除DIV的後半部分。.bat文件使用通配符查找和刪除字符串的一部分

事情是DIV都是獨一無二的(但是從同一件事開始),結局都是獨一無二的。

這裏是一個例子;

@echo off 
setlocal enabledelayedexpansion 
set string=<div id="zip?????">    
set "find=<div id="zip?????*">"    
call set delete=%%string:!find!=%% 
call set string=%%string:!delete!=%% 
echo %string% 

這就是DIV的樣子: DIV ID = 「zip75001艾迪3296129 -9683751」> 這是我希望它看起來像: DIV ID = 「zip75001」>

「ZIP」後的所有數字「ZIP ID」例如id =「zip #####」將是唯一的(我想保留這些)以及郵政編碼之後的所有內容。 Addison 3296129 -9683751(空間,城市名稱,緯度和長度)我想要刪除。注意這些都是獨一無二的。

+0

你讓我好奇,爲什麼你會用這個批處理文件? – adeneo

+0

我在一個文件中有很多替換文本,都有變量。核心是相同的div id =「zip12345 Richmond 35.1234 -96.12534」>我只想保留div id =「zip12345」<---注意12345在每個div中都會有所不同,所以我想讓div id =「 zip *****「>並刪除」Richmond 35.1234 -96.12534「,這在每個div中也會有所不同。 – user3498478

回答

0

您可以使用!,但您必須擁有ENABLEDELAYEDEXPANSION開關組。

setlocal ENABLEDELAYEDEXPANSION 
set word=table 
set str="jump over the chair" 
set str=%str:chair=!word!% 

或者您可以使用下面的小竅門:

set word=table 
set str="jump over the chair" 
call set str=%%str:chair=%word%%% 
echo %str% 

有原因的變量擴展另一層,因此有必要引用原始%的跡象,但它所有最終工作,呼叫會。

+0

這不適用於通配符 – user3498478

相關問題