7

私はGoogleの世界を楽しく検索して、私と同様の問題を見つけましたが、FOR / Fループの外で何かをしている人々の例を見つけることができないので、新しいスレッドを作成することを辞任しました.

FOR /F ループを使用して、参照ファイルで見つかった行ごとに Ruby Gem を実行していますが、これは完全に実行されます。問題は、参照ファイルのスクロールを終了し、Ruby Gem を正しい回数実行したときに、.CMD ファイル内の FOR /F ループ以外の処理が完了しないことです。

ここに私の.CMDコードがあります:

FOR /F "tokens=1,2,3 delims=," %%a in (c:\cygwin\usr\work\easy.lst) do (
c:\ruby191\bin\scrapitalist website -u http://www.website.com/%%a/%%c/%%b.html -o     C:\cygwin\usr\autobets\work\%%b_%%c.easy
)
copy c:\cygwin\usr\work\*.easy c:\cygwin\usr\autobets\work\easy.imp

easy.lst ファイルには 2 行のデータがあります。

ループは問題なく動作し、Ruby Gem を実行して *.easy ファイルを出力として作成しますが、COPY コマンドは実行されません。コピーを ECHO などに置き換えることはできますが、実際には実行されません。

FOR /F 構文に何が欠けているのかわかりません。アイデアはありますか?

ありがとう

4

1 に答える 1

10

バッチファイルそのものだと思いscrapitalistますので、バッチファイルを停止しますが、FORループがキャッシュされているので、最後まで動作します。

これを解決するには、単一のcallas プレフィックスのみが必要です。

FOR /F "tokens=1,2,3 delims=," %%a in (c:\cygwin\usr\work\easy.lst) do (
  call c:\ruby191\bin\scrapitalist website -u http://www.website.com/%%a/%%c/%%b.html -o     C:\cygwin\usr\autobets\work\%%b_%%c.easy
)
copy c:\cygwin\usr\work\*.easy c:\cygwin\usr\autobets\work\easy.imp
于 2012-06-15T11:46:56.207 に答える