Как уже упоминалось в комментариях, вы ищете здесь цикл for
:
@echo off
setlocal enabledelayedexpansion
for %%A in (*.txt) do (
set "file=exist %%~nA.png"
echo Using !file!
if exist !file! java -jar MyJavaProgram.jar -"!file!"
)
Это будет циклически перебирать все текстовые файлы в вашем текущем каталоге и устанавливать каждый из них в качестве параметра %%A
, установить переменную file
как «exist nameofyourtextfile.png», повторить вашу строку, а затем запустить ваш .jar с вашим file
переменная. Восклицательные знаки нужны здесь, поскольку для обработки каждого текстового файла (в каждой итерации цикла) требуется отложенное расширение.
Если вы буквально просто хотите использовать текстовый файл first , с которым вы столкнетесь, вы можете просто завершить цикл с помощью exit
или GOTO
:
@echo off
setlocal enabledelayedexpansion
for %%A in (*.txt) do (
set "file=exist %%~nA.png"
echo Using !file!
if exist !file! java -jar MyJavaProgram.jar -"!file!"
GOTO endloop
)
endlocal
:endloop
Если я неправильно понял ваше утверждение set
и вам на самом деле не нужно слово exist
в вашей переменной (если вы просто хотели имя) - вы можете просто удалить его и пробел до %%~nA.png
, Если вы сообщите нам, какой именно вывод вы ищете, мы можем помочь вам настроить его по мере необходимости.