Выберите два файла в команде, если существует - PullRequest
2 голосов
/ 30 марта 2020

Правда в том, что я новичок в программировании. Так что я был бы рад, если бы вы могли мне помочь. Мне нужно выбрать две вещи в команде «if exits», то есть два файла или один из них, к которым применима следующая команда. Это код:

if exist *.mp3 *.wma *.wav goto music
if exist *.mp4 *.mov goto video
if exist *.docx *.txt *.pdf goto document
if exist *.jpg *.png goto image
goto end
:music
md Music
move *.mp3 Music
move *.wma Music
move *.wav Music
if exist *.mp4 *.mov goto video
if exist *.docx *.txt *.pdf goto document
if exist *.jpg *.png goto image
goto end
:video
md Video
move *.mp4 Video
move *.mov Video
if exist *.docx *.txt *.pdf goto document
if exist *.jpg *.png goto image
goto end
:document
md Documents
move *.docx Documents
move *.txt Documents
move *.pdf Documents
if exist *.jpg *.png goto image
goto end
:image
md Pictures
move *.jpg Pictures
move *.png Pictures
goto end
:end
exit

Я искал и не нашел, перепробовал все виды опций и не удалось. Спасибо!

Ответы [ 2 ]

1 голос
/ 30 марта 2020

вы можете использовать al oop для итерации значений:

for %%a in (mp3 wma wav) do if exist *.%%a goto music

Чтобы сделать вещи более читабельными, вы даже можете определить макросы и использовать их повторно:

::::: marco ::::::::::
set "if_one_of=for %%a in ("
set "exist=) do if exist *.%%a"
:::::::::::::::::::::::

%if_one_of% mp3 wma wav %exist% goto music

подробнее о FOR

0 голосов
/ 31 марта 2020

Вы можете заменить весь ваш код следующими четырьмя строками:

for %%a in (mp3 wma wav) do if exist *.%%a md music 2>nul & move *.%%a music\
for %%a in (mp4 mov) do if exist *.%%a md video 2>nul & move *.%%a video\
for %%a in (docx txt pdf) do if exist *.%%a md documents 2>nul & move *.%%a documents\
for %%a in (jpg png) do if exist *.%%a md pictures 2>nul & move *.%%a pictures\
...