1

50個のフォルダを持つ1つのディレクトリがあり、各フォルダには50個のファイルがあります。各フォルダ内のすべてのファイルを読み取り、結果を保存するスクリプトがありますが、毎回フォルダ名を入力する必要があります。使用できるループまたはバッチツールはありますか?提案やコードは大歓迎です。

4

1 に答える 1

5

よりクリーンな方法があるかもしれませんが、dirコマンドの出力を変数に割り当てることができます。これにより、適切なフィールドがnameとである構造体が得られますisdir。たとえば、最上位のディレクトリ (50 個のファイルを含むディレクトリ) にフォルダーのみがあると仮定すると、次のようにすると、最初のフォルダーの名前が得られます。

folderList = dir();
folderList(3).name

(folderList 構造体の最初の 2 つのエントリは、"." (現在のディレクトリ) と ".." (親ディレクトリ) のためのものになることに注意してください。そのため、ファイルを含む最初のディレクトリが必要な場合は、 3 番目のエントリ)。フォルダを 1 つずつ調べたい場合は、次のようなことができます。

folderList = dir();
for i = 3:length(folderList)
    curr_directory = pwd;
    cd(folderList(i).name); % changes directory to the next working directory
    % operate with files as if you were in that directory
    cd(curr_directory);  % return to the top-level directory
end

最上位ディレクトリにフォルダだけでなくファイルも含まれている場合isdirは、folderList 構造体の各エントリを確認する必要があります。「1」の場合はディレクトリ、「0」の場合はファイルです。

于 2012-08-16T03:18:40.290 に答える