將目錄內容的路徑作為參數傳遞給批次文件

將目錄內容的路徑作為參數傳遞給批次文件

我有一個批次檔(“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!

若要使用,請將任何資料夾拖曳到此批次檔中。

相關內容