У меня есть пакетный файл ("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!
Для использования перетащите любую папку в этот пакетный файл.