Надеюсь, кто-то может мне помочь в этом:
У меня есть пакетный файл, в котором я хочу объединить переменные и включить функцию с номером переменной для объединения - для лучшего понимания см. прилагаемый скрипт:
set vSourcenm = tester.txt
Определяет переменную типа файла, например ".txt"
set vTargettyp =% vSourcenm: ~ 4%
set vDateTimeStamp = 21062016_0908 (упрощенный - устанавливает дату и время )
set str_len = 10 (это считается с помощью цикла)
set vTargetnm =% vSourcenm: ~ 0, - % str_len% % _% vDateTimeStamp %% vTargettyp%
Вывод vTargetnm должен быть:
tester_21062016_0908.txt
Спасибо за любые подсказки!
Это потребовало использования отложенного раскрытия, чтобы позволить вычислить число в переменной перед подстрокой.
setlocal enabledelayedexpansion
set vSourcenm=tester.txt
rem Defines a Variable of the Filetype like ".txt"
set vTargettyp=%vSourcenm:~4%
rem define how much of the string to remove [equal to the part saved to the extension
set str_len=4
rem Remove the extension from the filename
set vSourcenm=!vSourcenm:~0,-%str_len%!
REM (Simplified - sets the Date and Time)
set vDateTimeStamp=21062016_0908
set vTargetnm=!vSourcenm!_!vDateTimeStamp!!vTargettyp!
echo !vTargetnm!
pause
Ваш вопрос не согласуется с выводом примера,поэтому для str_len
было установлено значение 4, чтобы продемонстрировать отложенный синтаксический анализ переменных среды.
Кроме того, выходные данные % DATE%
и % TIME%
основаны на региональных настройках системы, поэтому вы должны убедиться, что они установлены на то, что вам нужно, прежде чем пытается проанализировать их в пакетном режиме.