Windows批处理脚本:子字符串计算

时间:2011-06-08 06:57:32

标签: windows batch-file

我有这样的情况。我在文件中有一个网址列表。

SET str1="http://www.domain.com/dir1/dir2/dir3/dir4/dir5/file1.txt"

在上面的字符串http://www.domain.com/dir1/dir2/dir3在所有网址中都是常量。 我需要在每个网址中提取剩余的路径。

我的意思是,我需要从上面的网址获取最后一个字符串/dir4/dir5/file1.txt

由于

2 个答案:

答案 0 :(得分:9)

您需要%var:~start,end%表示法。例如,如果你运行这个:

@SET str1="http://www.domain.com/dir1/dir2/dir3/dir4/dir5/file1.txt"
@ECHO %str1:~37,-1%

它会打印/dir4/dir5/file1.txt

答案 1 :(得分:5)

或者,您可以使用%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