14

私の関数は、最初のファイルを使用していくつかのテストを処理するために、特定のディレクトリの最初のファイル名を必要とします。テストが完了すると、ディレクトリから最初のファイルを削除します

私は以下のように試しました

FOR /R \\<My Folder> %F in (*.zip*) do echo ~nF  >%test_list%
set /p firstline=%test_list%
echo %firstline% 


FOR /F "tokens=*" %%A IN ('dir %test_firmware_dir% /b/s ^| find /c ".zip"') DO SET 
 count=%%A
  echo %count%
 :test_execution
  if %count% NEQ 0 (
  echo ON
  dir /b %test_firmware_dir%\*.zip >%test_firmware_list%
 set /p firstline=<%test_firmware_list%
 set /a filename=%firstline:~0,-4%
  Echo %filename%
  Echo *********************************************************
 Echo "Now running batch queue tests with %filename%"
  Echo ********************************************************

最後の要素に最初の要素を取得するための手順が表示されていますか?

4

2 に答える 2

32

goto別の方法は、最初のファイルを作成した後で(FORループを中断して)使用することです。

FOR %%F IN (%test_firmware_dir%\*.zip) DO (
 set filename=%%F
 goto tests
)
:tests
echo "%filename%"

また、ディレクトリ全体を通過する必要がないため、場合によっては(少し)高速に実行できます。

于 2012-08-12T16:29:27.850 に答える
10

アルファベット順に並べ替えたときに最初のファイルを意味すると仮定します。次に、リストをトラバースして最後の値を上書きすると、最後のファイルをキャプチャするのではなく、ソート順を制御します。

for /f "delims=" %%F in ('dir %test_firmware_dir%\*.zip /b /o-n') do set file=%%F
echo 1st alpha file is %file%
于 2012-08-09T12:36:36.767 に答える