ファイルリストからファイル名を変数に取得する

ファイルリストからファイル名を変数に取得する

現在、スケジューラを変換中です。現在は、ワイルドカードを使用してファイル転送を実行でき、その後、ポスト プロセスで、移動されたものを取得して読み取り、ワイルドカードを使用して移動されたファイルのファイル名を取得できます。ポスト プロセスから名前を取得する新しいスケジューラでは、これ以上これを行うことはできません。

転送後、フォルダーにはその名前のファイルが 1 つだけ含まれるはずです。たとえば、フォルダー「C:\Files\」には次のファイルが含まれます。

Rainbow.csv
Document 1079475.pdf
Shapes_20180411.txt

リストからファイル名「Document 1079475.pdf」を取得して変数に格納したい場合、「Document*.pdf」だけを知っていれば、Windows のバッチ スクリプトでそれをどのように実行できますか?

以下のコマンドを試しました:

dir "%homedrive%\Files\Document*.pdf" > temp.txt
set /p VAR=<temp.txt
echo %VAR%

ただし、最初の行を実行すると、ファイルに戻ります。

 Volume in drive C is OSDisk
 Volume Serial Number is D841-0924

 Directory of C:\Files
 08/01/2016  10:05 PM           128,657 Document 1079475.pdf
               1 File(s)        128,657 bytes
               0 Dir(s)  63,461,928,960 bytes free

変数VARは次のように返します

Volume in drive C is OSDisk

答え1

特定の検索を実行していて、ヘッダーなしでファイルのみに対して dir を実行する場合は、次のようにします。

dir /b /A:A "%homedrive%\Files\Document*.pdf" > temp.txt

試したのと同じコマンドが機能し、ファイル名 (および改行) のみが表示されます。

dir /? 

役に立つかもしれない他のオプションを紹介します

関連情報