Передать пути к содержимому каталога в качестве аргументов пакетному файлу

Передать пути к содержимому каталога в качестве аргументов пакетному файлу

У меня есть пакетный файл ("drag_target.bat"), в который я перетаскиваю несколько файлов. Затем Windows передает пути перетаскиваемых файлов в качестве аргументов:

drag_target.bat "dragged file 1 path" "dragged file 2 path" ...

Обычная задача, которую мне приходится выполнять, — перетащить все содержимое определенной папки (назовем ее «c:\foo\bar») в drag_target.bat.

Я хотел бы автоматизировать эту задачу, обернув первый пакетный файл в другой пакетный файл ("double_clickable.bat"). Но как мне перечислить все содержимое определенной папки в качестве аргументов?

Так, например, если «c:\foo\bar» содержит следующее:

а.txt

б.avi

c [является подпапкой]

то я бы хотел, чтобы double_clickable.bat вызывал следующее:

drag_target.bat "c:\foo\bar\a.txt" "c:\foo\bar\b.avi" "c:\foo\bar\c"

Как лучше всего этого добиться?

решение1

Этот double_clickable.batфайл должен это сделать:

@echo off
setlocal enabledelayedexpansion
set "args="
set "folder=%1"
for /f "tokens=*" %%G in ('dir /b "%1"') do set args=!args! "%folder%\%%G"
drag_target.bat !args!

Для использования перетащите любую папку в этот пакетный файл.

Связанный контент