for /?
объясняет расширение переменных, но вкратце файл может быть разбит на части, расширяющие метавариабельные переменные. Например, если у нас есть строка файла:
D:\work\file1.txt
мы можем запустить цикл for
, чтобы получить вышеуказанную строку или ее части:
for %%i in (c:\work\file1.txt) do echo %%i
будет повторяться D:\work\file1.txt
, но теперь мы можем расширить на %%i
, используя такие вещи, как d
rive, p
ath, n
ame, e x
tension и т. Д. Так что прямой пример будет ниже, вы можете скопировать это как есть и сохранить как командный файл и проверить его для себя:
@echo off
for %%i in ("c:\work\file1.txt") do (
echo Full string and retain double quotes: %%i
echo Full string but remove double quotes: %%~i
echo Drive only: %%~di
echo Path only: %%~pi
echo Filename only: %%~ni
echo Extension only: %%~xi
echo Combination of drive and path: %%~dpi
echo Combination name and extension: %%~nxi
echo adding text between name %%~ni and extension %%~xi as: %%~niTEXT%%~xi
)
Итак, с учетом приведенного выше объяснения, вам просто нужно использовать только имя, добавить текст и присоединиться с расширением.
copy "%%~i" "%destFolder%\%%~ni_DE%%~xi