Я пытаюсь создать пакетный файл для проекта, который считывает файлы в каталоге и запускает команду для каждого файла, который каким-то образом манипулирует файлом (из другой программы). Во время работы программа сохраняет каждый обработанный файл в выходную папку с расширением «_updated». Как я могу сделать это в своей команде, используя пакетный файл, чтобы расширение файла не становилось частью имени файла? например, o/p переходит от «Videoa.bin» к «Videoa.bin_updated.bin». Как я могу это исправить? Код ниже!
@ECHO ON
cd [filename]
SET v=output_folder
mkdir %v%
for %%a in ([path to files]*\.bin) do [command, which takes in the following args:
output file name (the one with the _updated ext),
and input folder(+more)]
PAUSE
Я полагаю, вы смотрите на что-то вроде этого, следующее будет повторять только новое измененное имя файла.
@echo off
set "input=D:\input_folder\"
SET "output=C:\output_folder\"
mkdir %output% > nul 2>&1
for %%a in ("%input%*.bin") do echo "%%~na_update.%%~xa"
Таким образом, исходное имя файла будет %%a
, только имя файла будет %%~na
, а расширение будет %%~xa
.
Чтобы узнать больше об этом, я предлагаю вам запустить справку, чтобы увидеть подробности о расширении переменных.
for /?
Что касается других частей команды, которые вы упомянули, я ничего не знаю об этом, поскольку вы не указали никаких подробностей об этом, поэтому вам нужно будет выяснить, как это будет соответствовать приведенному выше коду, или отредактируйте свой вопрос и немного покажите более подробно о том, как вы вручную запускаете команду, чтобы получить помощь по ее автоматизации.
Рад, что смог помочь :)
Спасибо! На самом деле информации было более чем достаточно. после использования %%~na все заработало отлично!