Как подсказывает заголовок, я пытаюсь установить вывод командной строки в виде строки в другой командной строке.
Пример:
verpatch %% ~ ni %% ~ xi / s desc %% ~ ni / s comment %% ~ ni / pv 'call jrepl "[0-9] +. [0-9] +. [0-9] +. [0-9] + "" "/ match / s% filename% '
Пожалуйстаобратите внимание, что:
call jrepl "[0-9]+.[0-9]+.[0-9]+.[0-9]+" "" /match /s %filename%
- это еще одна команда, которая выводит: 1.2.3.4 [Это функция, которая извлекает числа из имени файла]
Так что мне нужен этот выводкак это:
verpatch %% ~ ni %% ~ xi / s desc %% ~ ni / s comment %% ~ ni / pv 1.2.3.4
Здесь я делюсь всем своим кодомИтак, вы поняли:
@ECHO OFF
SETLOCAL
set file=C:\Users\Jack\Desktop\Files\*
set dot=.
FOR %%i IN ("%file%") DO (
set filedrive=%%~di
set filepath=%%~pi
set filename=%%~ni
set fileextension=%%~xi
:: This Line is supposed to store jrepl command as a string ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
SET COMMAND="call jrepl "[0-9]+\.[0-9]+\.[0-9]+.[0-9]+" "" /match /s %filename%"
:: Extract the string and print to the screen
verpatch %%~ni%%~xi /s desc %%~ni /s comment %%~ni /pv %COMMAND%
pause
)
pause
jrepl - файл пакетных функций текстового процессора regex JREPL.BAT от dbenham
Это моя вторая попытка сохранить команду в строке в качестве переменной:
@ECHO OFF
setlocal enabledelayedexpansion
set "file=C:\Users\Jack\Desktop\Files\*"
FOR %%i IN ("%file%") DO (
set filedrive=%%~di
set filepath=%%~pi
set filename=%%~ni
set fileextension=%%~xi
: Save Command Line as a variable
for /f "delims=" %%a in ('call jrepl "[0-9]+\.[0-9]+\.[0-9]+.[0-9]+" "" /match /s %%~ni') do @set theValue=%%a
verpatch %%~ni%%~xi /s desc %%~ni /s comment %%~ni /pv %theValue%
pause
)
pause
У меня есть папка, заполненная моими личными программами
ProgramOne 1.2.3.4.exe
ProgramTwo 2.2.2.2.exe
и т. д.
, и я пытаюсь создать пакет, который извлекает имя программы и версию из этих программы и вставьте их в отдельные командные строки, например:
verpatch "ProgramOne 1.2.3.4.exe" / s desc ProgramOne / s комментарий ProgramOne / pv 1.2.3.4