Надеюсь, кто-нибудь может мне помочь в этом:
У меня есть пакетный файл, в котором я хочу объединить переменные и включить функцию с номером переменной для объединения - для лучшего понимания см. Прикрепленный скрипт:
установить vSourcenm = tester.txt
Определяет переменную типа файла, например ".txt"
установить vTargettyp =% vSourcenm: ~ 4%
set vDateTimeStamp = 21062016_0908 (упрощенный - устанавливает дату и время)
установите str_len = 10 (это считается с циклом)
установить 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%
основан на региональных настройках системы, поэтому вам нужно убедиться, что они настроены на то, что вам нужно, прежде чем пытаться анализировать их в пакетном режиме.