0

次のようなコマンドを実行したい: foo.exe file1.c file 2.c file3.c ...現在のディレクトリの下にあるすべてのファイルを一覧表示するまで、これを繰り返します。

スクリプトでこれを行うにはどうすればよいですか?

編集:以下の回答は機能せず、ファイル名のスペースに関係しています。dir /b /ad が私に与えているものは次のとおりです。

c:\Users\morpheus\temp>dir /b /a-d
ceiling GRF Model 24x36.pdf
conference room 02.pdf
conference room 03.pdf
conference room.pdf
conference room01.pdf
CONFERENCE TABLE  detail.pdf
CONFERENCE TABLE.pdf
door detail.pdf
door.pdf
ELEVATION GF24X36.pdf
flooring GRF Model 24x36.pdf
junction detail 01.pdf
junction detail.pdf
MODULAR GRF Model 24x36.pdf
RECEPTION PART PLAN GF.pdf
reception table edited.pdf
reception table.pdf

@cookiebutter、あなたのソリューションで得られるものは次のとおりです。

foo.exe  "ceiling"  "conference"  "conference"
 "conference"  "conference"  "CONFERENCE"  "CONFERENCE"  "door"  "door.pdf"  "EL
EVATION"  "flooring"  "junction"  "junction"  "MODULAR"  "RECEPTION"  "reception
"  "reception"

ファイル名のスペースを処理できるソリューションは次のとおりです。

echo off
setlocal ENABLEDELAYEDEXPANSION
set params=
for %%i in ('dir *.* /b') do (
if exist %%i set params=!params! "%%i"
)
echo on
foo.exe %params%

クッキーバターの答えは正しい方向に進んだので受け入れます。

4

2 に答える 2

1

これでうまくいくはずです。

内容は覚えていませんが、1 行に含めることができる文字数には制限があるため、含めたいファイルが数百ある場合、これはおそらくうまくいかないでしょう。

しかし、あまり多くない場合は、これでうまくいきます。

echo off
setlocal ENABLEDELAYEDEXPANSION
set params=
for /f %%i in ('dir /b /a-d') do (
    set params=!params! "%%i"
)
echo on
foo.exe %params%
于 2013-10-22T11:58:41.277 に答える