4

未定義のファイル数を持つ可能性のあるフォルダーからファイルを(一度に1つずつ)読み取る必要がある特定のタスクを実行しようとしています。フォルダ内の最初のファイルを新しい場所に移動してから、別のバッチファイルで別のタスクを実行できるようにする必要があります。主な目的は、すべてのファイルを読み取る*。*を実行するのではなく、一度に1つのファイルを読み取ることです。一度に。どんな助けでもいただければ幸いです!ありがとう

4

3 に答える 3

4

次のようなforコマンドを使用できます。

for /R c:\test\src %i IN (*.*) DO (
MOVE %i C:\test\dest
YourBatch.bat C:\test\dest\%~nxi
)

このコマンドをバッチファイルに入れる場合は、次のように%記号を2倍にする必要があります。

for /R c:\test\src %%i IN (*.*) DO (
MOVE %%i C:\test\dest
YourBatch.bat C:\test\dest\%%~nxi
)

YourBatch.batファイルで、次のような%1%を使用してファイル名にアクセスします。

@echo off
type %1%

編集:

1つのファイルのみを処理するには、最初のループの最後で終了します。

for /R c:\test\src %%i IN (*.*) DO (
MOVE %%i C:\test\dest
YourBatch.bat C:\test\dest\%%~nxi
exit
)
于 2009-07-07T21:26:18.490 に答える
2

私はあなたが見てみたいと思うかもしれませんforfiles

ファイルまたはファイルのセットに対してコマンドを選択して実行します。このコマンドは、バッチ処理に役立ちます。

于 2009-07-07T20:53:47.167 に答える
1

これを行う別の方法があります。SETコマンドにいくつかの拡張機能を使用します。

@echo off
setlocal ENABLEDELAYEDEXPANSION
FOR /f %%a IN ('dir /b') DO (
   CALL SET /a x = !x! +1
   if !x! == 1 (
      REM do your work here. the call to move is an example
      CALL ECHO moving %%a
      CALL MOVE %%a .. 
   )
)

ここにいくつかの詳細があります

于 2009-07-07T22:18:33.547 に答える