我有一個批次檔(“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」包含以下內容:
a.txt
b.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!
若要使用,請將任何資料夾拖曳到此批次檔中。