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