DIR
の出力を変数に格納する必要があります。
これは、前に尋ねられました。 ここ または ここ または ここ 。
それらはすべて、私が現在使用しているものとほぼ同様の答えを提供します。
%= Find the *.sln file and write its path to the file temp.temp =%
DIR /s/b *.sln > temp.temp
%= Read out the content of temp.temp again to a variable =%
SET /p texte=< temp.temp
%= Remove the temp.temp file =%
DEL temp.temp
%= Get only the filename without path =%
FOR %%A IN ("%texte%") DO (
SET Name=%%~nxA
)
しかし、私の場合、DIR /s/b *.sln
の出力は常にone-linerになると確信しています。私にとっては、それは少し醜く見えます
a)出力を外部ファイルに保存し、
b)FOR
ループを実行しますが、1行しかないことがわかっています。
これを行う直接/簡単な方法はありますか?
for /f "delims=" %%a in ('dir /s /b *.sln') do set "name=%%a"
実際、最も効率的な方法です(一時ファイルを必要とせずに、コマンドの出力を直接処理できます)。%name%
には、ファイルの完全修飾ファイル名(または、ファイルが複数ある場合は最後のファイル)が含まれます