Простой ответ - использовать буквы, как упомянуто выше, но все остальное элементарно, если вы знаете, сколько символов нужно удалить перед запросом. Ниже приведен пример с различными способами манипулирования текстом с использованием переменных. Краткий ответ таков:
@echo off
set phrase=Some other phrase
echo %phrase:~11,6%
pause
Этот скрипт установит переменную «фраза» в «Некоторая другая фраза»
Вы можете получить доступ к остальному тексту фразы, используя: ~ переход к одиннадцатому символу фразы и отображение следующих 6 символов после этого. Помните, что пробелы - это символы, а слово «фраза» имеет длину 6 символов.
Более длинная версия, которую в моем примере используется для прописных букв первой буквы слова, использует это, чтобы показать, как манипулировать словами в тексте или переменных.
goto :top
:end
echo.
pause
goto :EOF
:top
echo.
SETLOCAL ENABLEDELAYEDEXPANSION
::Prompt for Name and set to variable "a"
set /p a=Enter Name :
echo.
::Set "aName" to the result of what was typed at the prompt.
SET aName=%a%
::Set the First letter of "aName" to a new variable "firstletter" the 0,1 is the first character (0) 1 character long(1)
set firstletter=%aName:~0,1%
::Set the variable "theRest" to the second character of "aName" to the 44th or whatever you choose
::pneumonoultramicroscopicsilicovolcanoconiosis is the longest word in the dictionary 45 characters long
set theRest=%aName:~1,44%
:: display the full name as 2 variables the first letter and the rest of the word/name
echo %firstletter%%theRest% is what you typed the first letter is "%firstletter%"
echo.
CALL :UCase firstletter fl
CALL :LCase therest tr
echo %fl% being the uppercase first letter you typed
echo.
echo %fl%%aName:~1,44% is the uppercase first and the rest of the word as typed.
echo.
echo %fl%%tr% is the Uppercase first letter and all lowercase for the rest of the word.
echo.
echo %fl%%tr% >>%userprofile%\desktop\uppercaseresults.txt
echo.
echo A file named "uppercasereults.txt" was created on the desktop
echo.
echo with the name you typed above capitalized.
CALL :UCase aName newName
echo.
ECHO.%newName% In all UPPERCASE
echo.
CALL :LCase aName newName
ECHO.%newName% in all LOWERCASE
ENDLOCAL
goto end
:LCase
:UCase
:: Converts to upper/lower case variable contents
:: Syntax: CALL :UCase _VAR1 _VAR2
:: Syntax: CALL :LCase _VAR1 _VAR2
:: _VAR1 = Variable NAME whose VALUE is to be converted to upper/lower case
:: _VAR2 = NAME of variable to hold the converted value
:: Note: Use variable NAMES in the CALL, not values (pass "by reference")
SET _UCase=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
SET _LCase=a b c d e f g h i j k l m n o p q r s t u v w x y z
SET _Lib_UCase_Tmp=!%1!
IF /I "%0"==":UCase" SET _Abet=%_UCase%
IF /I "%0"==":LCase" SET _Abet=%_LCase%
FOR %%Z IN (%_Abet%) DO SET _Lib_UCase_Tmp=!_Lib_UCase_Tmp:%%Z=%%Z!
SET %2=%_Lib_UCase_Tmp%
goto :EOF
:EOF
goto :end