我有這樣的情況。我有一個文件中的網址列表。Windows批處理腳本:子串計算
SET str1="http://www.domain.com/dir1/dir2/dir3/dir4/dir5/file1.txt"
在上述字符串http://www.domain.com/dir1/dir2/dir3
是在所有的URL恆定。 我需要提取每個網址中的其餘路徑。
我的意思是,我需要得到從上面的網址,最後一個字符串爲/dir4/dir5/file1.txt
感謝
我有這樣的情況。我有一個文件中的網址列表。Windows批處理腳本:子串計算
SET str1="http://www.domain.com/dir1/dir2/dir3/dir4/dir5/file1.txt"
在上述字符串http://www.domain.com/dir1/dir2/dir3
是在所有的URL恆定。 我需要提取每個網址中的其餘路徑。
我的意思是,我需要得到從上面的網址,最後一個字符串爲/dir4/dir5/file1.txt
感謝
您需要%var:~start,end%
符號。例如,如果你運行這個:
@SET str1="http://www.domain.com/dir1/dir2/dir3/dir4/dir5/file1.txt"
@ECHO %str1:~37,-1%
它會打印/dir4/dir5/file1.txt
。
或者,您可以使用%variable:str_to_delete=%
語法從變量中刪除字符串。這樣你就不必依賴字符串中的字符位置。
示例代碼:
@echo off
set str1="http://www.domain.com/dir1/dir2/dir3/dir4/dir5/file1.txt"
:: remove the common part of the path
set str2=%str1:http://www.domain.com/dir1/dir2/dir3=%
:: remove the quotes
set str2=%str2:"=%
echo.%str2%
輸出:
/dir4/dir5/file1.txt
事實上,你應該說 「VAR%:〜開始,長度%符號」 – hoang 2011-11-22 10:22:20
@hoang:顯然'-1'不是長度。如果使用正數,則它是一個長度,但OP不希望指定長度(因爲子字符串是可變長度)。使用負數指定一個結束位置,這就是所謂的這裏,因爲OP希望子字符串在結束引號之前結束。 – Gabe 2011-11-22 13:46:23
你說的沒錯,我錯過了一個負數是從頭到尾的觀點。 – hoang 2011-11-23 17:00:42