現在、スケジューラを変換中です。現在は、ワイルドカードを使用してファイル転送を実行でき、その後、ポスト プロセスで、移動されたものを取得して読み取り、ワイルドカードを使用して移動されたファイルのファイル名を取得できます。ポスト プロセスから名前を取得する新しいスケジューラでは、これ以上これを行うことはできません。
転送後、フォルダーにはその名前のファイルが 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 /?
役に立つかもしれない他のオプションを紹介します