†REXXのどろぬま†

多階層ディレクトリの一括作成

作成開始日 2012.02.03
最終更新日 2021.06.04

MD命令では多階層のディレクトリをいきなり作成することができない。SysMkDirならば可能かもしれないが(未確認)、INIに情報が書き込まれるのが嫌だ。と言うことで、スクリプトを書いてみた。要するに、頭から順番にディレクトリを切り出していって、存在しないディレクトリであればMD命令で作成する、と言うアルゴリズム。

mdir='g:\mydir\abc\xyz\123\'	/*末尾\必須*/
p=0
Do While POS('\',mdir,p+1)>0
  p=POS('\',mdir,p+1)
  xdir=left(mdir,p-1)
  IF length(xdir)>2 THEN
  Do
    rc=SysFileTree(xdir,yn,'D')
    If yn.0=0 then '@MD' xdir
  End;
End;
う〜ん、仕様的に末尾の「\」は無しにする方が自然か…。あと、POSで分解するより、PARSEで分解する方がエレガントかな。


【REXXのどろぬま目次】 【ホーム】