我有一个批处理文件(“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”包含以下内容:
文本文件
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!
要使用,请将任何文件夹拖到此批处理文件中。