-1

一連の bash スクリプトをバッチ ファイルに変換しようとしています。スクリプトの一部で次の問題が発生しています。その部分は次のことを実行します。

ネットワーク共有に接続し、特定のルート名を持つ各フォルダーについて最新バージョンを見つけ、内部の .zip をローカルの場所にコピーします。このメソッドは、ディレクトリ内にあるすべてのフォルダーをループする必要があります。これの bash バージョンは次のとおりです。

for f in /xxx/xxx/xxx.xxx.game_android*
do
        cd $f
        ls | sed 's/_//g' | sed 's/test.sh//g' | sed 's/plist.txt//g' | sed 's/^...//' > $dir/res/temp_list.txt
        sort $dir/res/temp_list.txt > $dir/res/temp_list_sorted.txt
        rm $dir/res/temp_list.txt
        export atom=`tail -n1 $dir/res/temp_list_sorted.txt`
        export final=`ls | grep "$atom"`
        rm $dir/res/temp_list_sorted.txt
        cd $final
        echo "Copying atom: $atom"
        cp *.zip $dir/res/sb5-games/
        echo "Copying File: $f"
done 

これはうまく機能しますが、バッチに変換しようとすると、多くの問題に直面します。GnuWin32 CoreUtils、Sed、Grep をインストールできたので、すべて同じツールを使用できますが、ディレクトリ内のすべてのフォルダーをループする実際のプロセスは機能していません。

私の質問: ワイルドカードを使用してディレクトリ内のすべてのフォルダーをループするには、どの形式の FOR コマンドを使用しますか?次に、各フォルダーで必要な一連のコマンドをどのように実行しますか?

ありがとう。

4

1 に答える 1

1

WhateverDirectoryバッチ ファイルで次の構成を使用して、すべてのフォルダーをループできます。

FOR /F "tokens=*" %%F IN ('DIR /AD /B WhateverDirectory' ) DO (
  PUSHD "WhateverDirectory\%%F"
  ECHO You are now in subdir %%F of WhateverDirectory
  ECHO and can do your stuff here
  ECHO etcetera
  POPD
)

優れたバッチ ガイドはhttp://www.ss64.com/nt/または checkoutです。優れた Windows バッチ スクリプト リファレンス ガイドとは何ですか?

于 2012-07-03T02:31:03.987 に答える