Eu tenho um arquivo em lote ("drag_target.bat") para o qual arrasto vários arquivos. O Windows então passa os caminhos dos arquivos arrastados como argumentos:
drag_target.bat "dragged file 1 path" "dragged file 2 path" ...
Uma tarefa comum que tenho que realizar é arrastar todo o conteúdo de uma pasta específica (chame-a de "c:\foo\bar") para drag_target.bat.
Gostaria de automatizar esta tarefa agrupando o primeiro arquivo em lote em outro arquivo em lote ("double_clickable.bat"). Mas como posso listar todo o conteúdo de uma pasta específica como argumentos?
Então, por exemplo, se "c:\foo\bar" contivesse o seguinte:
a.txt
b.avi
c [é uma subpasta]
então eu gostaria que double_clickable.bat invocasse o seguinte:
drag_target.bat "c:\foo\bar\a.txt" "c:\foo\bar\b.avi" "c:\foo\bar\c"
Qual é o melhor jeito de concluir isso?
Responder1
Este double_clickable.bat
arquivo deve fazer isso:
@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!
Para usar, arraste qualquer pasta para este arquivo em lote.