Пакетный скрипт Windows: вычисление подстроки - PullRequest
6 голосов
/ 08 июня 2011

У меня такая ситуация.У меня есть список URL-адресов в файле.

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

В приведенной выше строке http://www.domain.com/dir1/dir2/dir3 является постоянным во всех URL-адресах.Мне нужно извлечь остаток пути в каждом URL-адресе.

Я имею в виду, мне нужно получить окончательную строку из приведенного выше URL-адреса: /dir4/dir5/file1.txt

Спасибо

Ответы [ 2 ]

9 голосов
/ 08 июня 2011

Вам нужна запись %var:~start,end%.Например, если вы запустите это:

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

Будет напечатано /dir4/dir5/file1.txt.

5 голосов
/ 08 июня 2011

Кроме того, вы можете использовать синтаксис %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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...