Вы можете использовать цикл FOR /F
а с опциями "TOKENS=2 DELIMS=/"
вы можете получить значение из строки URL, переданной в качестве первого аргумента при выполнении пакетного скрипта после его (значение URL) второй прямой косой черты (/
) но перед следующей косой чертой (/
), которая даст вам ожидаемый результат в точности так, как вы описываете, что вам нужно от этой части URL.
Вы можете SET
разобранную URL строку в качестве значения переменного и использовать его для передачи в качестве первого аргумента в файл приложение исполняемого. Ниже я приведу несколько примеров пакетных сценариев, чтобы прояснить ситуацию.
# 1. Пакетный скрипт
@echo off
echo %~1
FOR /F "TOKENS=2 DELIMS=/" %%A IN ("%~1") DO (SET "var=%%~A")
echo %var%
pause
exit 0
# 2. Пакетный скрипт
@ECHO OFF
FOR /F "TOKENS=2 DELIMS=/" %%A IN ("%~1") DO (CALL C:/someapp.exe "%%~A")
EXIT 0
# 1. Коррелированные выходные результаты
C:\Users\User\Desktop> test.bat "testapp://close/"
testapp://close/
close
Press any key to continue . . .
Дополнительные ресурсы
- FOR /F
FOR /?
delims=xxx - specifies a delimiter set. This replaces the
default delimiter set of space and tab.
tokens=x,y,m-n - specifies which tokens from each line are to
be passed to the for body for each iteration.
This will cause additional variable names to
be allocated. The m-n form is a range,
specifying the mth through the nth tokens. If
the last character in the tokens= string is an
asterisk, then an additional variable is
allocated and receives the remaining text on
the line after the last token parsed.