[リストへもどる]

一括表示

▼ ディレクトリ構造のコピー(再) - 文太 2018/09/17 00:12 No.3102
  ┣Re: ディレクトリ構造のコピー(再) - 文太 2018/09/17 00:48 No.3103
  ┃┗Re^2: ディレクトリ構造のコピー(再) - 1B/note 2018/09/17 20:15 No.3104
  ┃ ┗Re^3: ディレクトリ構造のコピー(再) - としき@家主 2018/09/18 02:21 No.3106
  ┃  ┗Re^4: ディレクトリ構造のコピー(再) - 文太 2018/09/18 12:01 No.3108
  ┃   ┗Re^5: ディレクトリ構造のコピー(再) - としき@家主 2018/09/18 13:27 No.3109
  ┃    ┗Re^6: ディレクトリ構造のコピー(再) - 文太 2018/09/19 01:21 No.3110
  ┃     ┗Re^7: ディレクトリ構造のコピー(再) - としき@家主 2018/09/19 01:55 No.3111
  ┃      ┣Re^8: ディレクトリ構造のコピー(再) - 1B/note 2018/09/19 21:30 No.3112
  ┃      ┃┗Re^9: ディレクトリ構造のコピー(再) - としき@家主 2018/09/21 00:37 No.3114
  ┃      ┗Re^8: ディレクトリ構造のコピー(再) - 文太 2018/09/20 23:39 No.3113
  ┃       ┗Re^9: ディレクトリ構造のコピー(再) - としき@家主 2018/09/21 00:54 No.3115
  ┗Re: ディレクトリ構造のコピー(再) - としき@家主 2018/09/18 02:16 No.3105
   ┗Re^2: ディレクトリ構造のコピー(再) - 文太 2018/09/18 11:57 No.3107
タイトルディレクトリ構造のコピー(再)
記事No3102
投稿日: 2018/09/17(Mon) 00:12
投稿者文太
 ちょっとお邪魔します。m(__)m

文太 wrote: 06/10/1, #754
「ディレクトリ構造のコピー」
 うーん、10年以上前の課題。

>タイトルのとおりの「ディレクトリ構造のコピー」って、どうすれば
>出来ますでしょうか。バッチ技で構わないのですが、お知恵を拝借で
>きませんでしょうか。

 大変に古い話で恐縮なのですが、ついに課題を解決しました。
 dos用のフリーソフトにdirlist.exeというのがあったのだけど、あれは
特殊なdirコマンドでした。で、dirlist.exe by Toshikiは、dosでは動かん、
というので、方法を模索しておりました。
 できました! 単純。

--- dirr.sed ---
# directory構造をコピーする。前準備。空フォルダ作製。
# dir /s /ad | oldsed -f dirr.sed >c:\k.bat
# 以下では、C:\ -> E:\ を想定。
# 「ディレクトリは」の部分は、DOS version依存。
# モバでは、"directory of"だったと思う(英語 DOS)。

/^ディレクトリは/{
	s/^[^ ]+ \(.+\)$/Md \1/
	s/C:\\/E:\\/p
	d
	}
d
----------------

--- dir2.sed ---
# directory構造をコピーする。(要 zcopy, logos版sed)
# dir /s /ad | lsed -f dir2.sed >c:\k2.bat
# 以下では、C:\ -> E:\ を想定。
# 実は、小さなオチがあって、Zcopyはdestinationにそのディレクトリ
# (フォルダ)がないと、作ってコピーしてくれるのです!
# だから、dirr.sedとdir2.sedの関係がどうなるのかについてはこれから
# 考えます。あ、e:\ はラムドライブなんです。積極的に使いたい。

/^ディレクトリは/{
	s/^[^ ]+ \(.+\)$/Zcopy \1 \1/
	s/C:\\/E:\\/2p
	d
	}
d
----------------

 なんでこんなことがしたいかというと、母艦というかそこが中心という
マシンとディレクトリ構成を同じすると、>zcopy /s *.* みたいなので
別マシンでも、ファイルの同期が全部これで足りるのです。

 ただし、Windowsマシンのルートで上のスクリプトを使うと、全部出して
くれてしまいますので(それなりの使い道ある?)、ちょっと工夫したほうがいい
のかもしれません。3分くらいかかったかな?
 それでも僕は、Win7, Win10のマシンで、NEC98時代からのそのままのファイル
配置をしているもので、ルートに個人フォルダがけっこうあるのですよねぇ。
ディレクトリを深く掘ると面倒で、、、。c:\bin, c:\atok8, c:\def, c:\vz とか。

 ※誰にも通じない独り言。これ、発想、bll2.comと同じじゃん。同じところを
ぐるぐる、ぐるぐる、回ってますねぇ。人生は、無限ループ。しかし、ループの輪は
ちゃんと大きくなる。きちんと人は成長できる。


タイトルRe: ディレクトリ構造のコピー(再)
記事No3103
投稿日: 2018/09/17(Mon) 00:48
投稿者文太
レス元3102
 Win7, 32bitで、
>xcopy /?
 の結果です。

ファイルとディレクトリ ツリーをコピーします。
XCOPY コピー元 [コピー先] [/A | /M] [/D[:日付]] [/P] [/S [/E]] [/V] [/W]
  /T          ファイルはコピーせずにディレクトリ構造のみを作成します。空の
              ディレクトリまたはサブディレクトリは除きます。"/T /E" と指定
              すると空のディレクトリやサブディレクトリも作成されます。
  /E          ディレクトリまたはサブディレクトリが空であってもコピーします。
              "/S /E" と同じ意味です。/T の内容を変更する際にも使用できます。

 これですね、see #1800
 残念、これは、DOS 6.2にはありませんでした。

タイトルRe^2: ディレクトリ構造のコピー(再)
記事No3104
投稿日: 2018/09/17(Mon) 20:15
投稿者1B/note
レス元3103
本体分解してHDD取り出して外付けにする私はある意味ヘタレかも知れない…
CF-M34(TOUGHBOOK)って純正のFDD以外は拒否するのよ(笑)。

※CF-M34にW2Kをインストールした時の話
起動可能なUSB-CDDを持ってなかったので
別機にHDD入れてWin98の起動FDで起動してHDDをformat /s
HD区画にi386ディレクトリをコピー
CF-M34に戻してWin98で起動させてからwinnt.exe

因みにB-right/Vは別機でインストールしてHDD移植すれば大抵はそのまま起動します(笑)。

タイトルRe^3: ディレクトリ構造のコピー(再)
記事No3106
投稿日: 2018/09/18(Tue) 02:21
投稿者としき@家主
参照先http://toshiki.la.coocan.jp/
レス元3104
> 因みにB-right/Vは別機でインストールしてHDD移植すれば大抵はそのまま起動します(笑)。

Windowsも、95/98のころは、大抵はそのまま起動していたんですがねぇ。
もっとも、まともに使おうとすると、起動後の各種ドライバの設定は面倒でしたが。
でも、起動すらしないシステムに比べれば、なんぼかマシ。
 

タイトルRe^4: ディレクトリ構造のコピー(再)
記事No3108
投稿日: 2018/09/18(Tue) 12:01
投稿者文太
レス元3106
>もっとも、まともに使おうとすると、起動後の各種ドライバの設定は面倒でしたが。
 超面倒で、僕はよほど急いでいて、このテストだけさせてくれ、という場合以外、
Win98でもWinMEでもしません。

>でも、起動すらしないシステムに比べれば、なんぼかマシ。
 経験的に、NT系はダメなんですか?


タイトルRe^5: ディレクトリ構造のコピー(再)
記事No3109
投稿日: 2018/09/18(Tue) 13:27
投稿者としき@家主
参照先http://toshiki.la.coocan.jp/
レス元3108
>  経験的に、NT系はダメなんですか?

それ以外の理由があるのかもしれませんが。
少なくとも、Vistaでは起動しなかった経験があります。
セーフモードだと起動時に読み込むドライバが見えるのですが、特定のドライバで
引っかかっていました。
そういえば、昔、W2Kではうまく起動した記憶があるようなないような。
 

タイトルRe^6: ディレクトリ構造のコピー(再)
記事No3110
投稿日: 2018/09/19(Wed) 01:21
投稿者文太
レス元3109
>少なくとも、Vistaでは起動しなかった経験があります。
 なんとなく分かるような気がしますね。
 しっかし、>dir /s /adがそうですけど、OSは、すさまじく大きなシステムに
なりましたねぇ。
 まぁ、便利になってるんでしょうけどね。

>セーフモードだと起動時に読み込むドライバが見えるのですが、特定のドライバで
>引っかかっていました。
 なるほど。情報、多謝。

>そういえば、昔、W2Kではうまく起動した記憶があるようなないような。
 僕もうっすらと。でも起動するたびに、「あれを入れるぞ」「再起動してくれ」
の嵐だったみたいな記憶。Win9xでも同じ。
 これも、OSが多くのドライバを持ってくれるのは、何にもない(というわけでも
ないのでしょうけど。io.sys)DOSと違って、ありがたいことなのでしょうけど、
素直に喜べないのですよね。ま、グローバルな時代ですから。
 WinSystemの90%くらい、使ってなさそう。要らない機能を削除するのも、人生の
無駄遣いみたいに思える。

 おおざっぱな時代になっていくね、とは、m.gannさんのお言葉。僕には染みます。

 遠くない将来に、awkですごく簡単な質問させていただく予定です。ちょっと復習と
予習をしてから、ですが。m(__)m
 ほんと、長いこと、使っていなかったんです。

タイトルRe^7: ディレクトリ構造のコピー(再)
記事No3111
投稿日: 2018/09/19(Wed) 01:55
投稿者としき@家主
参照先http://toshiki.la.coocan.jp/
レス元3110
>  WinSystemの90%くらい、使ってなさそう。要らない機能を削除するのも、人生の
> 無駄遣いみたいに思える。

まぁ、一般人の使う最近のOSはみんなそんなもの。
MacOSしかり、Linuxしかり、Androidだってそうなっているはず。
昔、OS/2をインストールしたことがあったけど、あれも巨大なシステムだった。
いや、シンプルなシステムもあることはあるんですよ。
LinuxやAndroidでたまに見かけます。
でも、それって、ハードウェアの製造業者が自社製品に最適化しているだけ。
なので、それこそ、他のマシンでは動かない、ということになる。


そうだ、AWK。
会社でエクセルで使う元データをAWKでCSVで書き出せば楽だ、というところには
たどり着いたけど、それ以降、かれこれ一月ほど放り出している。
そのエクセルではじいたデータを使ってあれこれするのだけど、それの締め切り
が10月末。とりあえず、純エクセルで暫定版はできているのだけれど、やはり
きちんと網羅的に算出したい。あぁ、急がねば。
一応、連想配列をバリバリ使う予定。なのだけど、会社にはAWKのドキュメントも
ないので自宅でスクリプトを作って送り込むか。いや、自宅ではそんな暇はない。
会社にドキュメントを送り込むのが建設的かつ生産的かな。
 

タイトルRe^8: ディレクトリ構造のコピー(再)
記事No3112
投稿日: 2018/09/19(Wed) 21:30
投稿者1B/note
レス元3111
OS/2ってドライバ当てる順番によってはtrapで起動しなくなったりしませんでした?
そしてconfig.sysがやたら巨大と言う(笑)。

因みにOS/2も別機でインストールしてHDD移植する場合がありましたね。
Libretto20とか。

現役で動くWARP4.5機あるけどOS/2って親指シフト化できないんで……
HDD差し替えてDOSで使ってます(^^;

タイトルRe^9: ディレクトリ構造のコピー(再)
記事No3114
投稿日: 2018/09/21(Fri) 00:37
投稿者としき@家主
参照先http://toshiki.la.coocan.jp/
レス元3112
> OS/2ってドライバ当てる順番によってはtrapで起動しなくなったりしませんでした?

こちらは記憶がありませんが

> そしてconfig.sysがやたら巨大と言う(笑)。

config.sys以外も含め、だったかもしれませんが、とにかく設定ファイルが巨大だったことは
覚えています。


化身、ではないな、OS/2ではシャドウといったと思いますが、リンクが壊れて困ったことが
何回もありました。Win95に比べて、いろいろと高機能だけどいろいろと詰めが甘い、と
いう印象が残っています。
あと、ネットワークの設定には難儀しました。
こちらも、設定項目だけは山のようにあったのですがね。
おそらく、IBMのメインフレームの技術者なら、何の困難もなく設定できるのでしょう。
DOSで手作業でNICとパケットドライバを設定するほうがはるかに簡単でした。
その後、ネットワーク設定 *だけ* ならWin95が一番簡単、という話を聞いて、まさに
そのとおりと大いに同感したものです。

え〜と、ここまではOS/2 ver.4の話。
OS/2 ver.3は、そこまで深く使いこなさなかったというのもあるけど、そんなに困ったという
記憶もありません。使っていた期間が短かったかもしれない。
で、ver.4とver.3は、自分のNEC PC-98にインストールしていました。当然、NEC版。
もしかしたら、それが悪かったのかもしれない。
これらのバージョン、AT機では使ったことがありません。
それ以前、会社の社内システムで、ver.1.21のマシンには触ったことがあります。
こちらはAT機。
あと、ほとんど記憶にないのですが、会社にはver.2のシステムも、もしかしたらあったかも。
こちらのシステムに触って悪くないという印象を抱いたので自分のマシン用に購入したのですが、
いろいろな意味でいい勉強になりました。
 

タイトルRe^8: ディレクトリ構造のコピー(再)
記事No3113
投稿日: 2018/09/20(Thu) 23:39
投稿者文太
レス元3111
>遠くない将来に、awkですごく簡単な質問させていただく予定です。
 ここ、思わぬ深みにはまりました。
 ふかーい。
 すいません、ちょっと忘れていてください。
 フロー制御って、sedでは、まあ不気味ですが、awkでは、本格的になるんですね。
 getlineかnextか、あたりのことのつもりでした。基本なんですけどね。うう。
 「連想配列」も、一度、理解しなくちゃなんですけど、必要な場面がなくて。
アセンブラの構造体と考え方は近いよねぇ、とか。深み。
 言語をまたいでます。素人がしてはいけないことだけど、いかにも素人がやり
そうなことですね。
 最低限の美味しいところだけ、食べようとしてます。

タイトルRe^9: ディレクトリ構造のコピー(再)
記事No3115
投稿日: 2018/09/21(Fri) 00:54
投稿者としき@家主
参照先http://toshiki.la.coocan.jp/
レス元3113
>  すいません、ちょっと忘れていてください。

3歩ほど歩いたので忘れました。
えぇと、何でしたっけ。


それはさておき。
自分の案件のほうは、何とかこなせました。
データ構造をしっかり考えたら、連想配列だとスマートではないと判明。
ある種のビットフィールドでも構成可能だと思うけど、それも面倒そう。
ということで、とてつもなく多重のループの入れ子で最初のバージョンは実装。
当初、素直に作ったら、15段ものループになった。
でも、いろいろと条件を整理して、論理式を駆使したら、ループは8段で済んだ。
で、出力の結果をエクセルに読み込ませて、AWKでも可能だけどエクセルのほうが
見栄えがいいものをいくつかくっつけて、さらに、エクセルでなくてはできない
枠線をつけて、欲しかったデータの初版が完成。
さらに、見やすい形にデータが整ったおかげで、不要な部分をいくつか発見する
ことができました。そこで、それらを削除。最終版完成。
もう、あとは印刷するだけ。
というか、印刷しようとしたのだけど、業務多忙でうっかり忘れてしまった。
明日は忘れずに印刷しよう。
 

タイトルRe: ディレクトリ構造のコピー(再)
記事No3105
投稿日: 2018/09/18(Tue) 02:16
投稿者としき@家主
参照先http://toshiki.la.coocan.jp/
レス元3102
> 「ディレクトリ構造のコピー」

実は、とある案件で、2〜3年前、会社のWin7をいじったことがあります。
その際には、
 >dir /s /ad > di.bat
とかやって、そのバッチファイルそのものをキーボードマクロで処理。
が〜っとスクロールしていくのを、ぼ〜っと眺めていました。

近日中に、とある案件で、自宅で似たようなことをする必要があるような気がしています。
ディレクトリの中のファイルそのものは、旧ディレクトリから新ディレクトリに、awkで
書き換えながら転送することになるんだろうなぁ。
おそらく、sedでは不必要に難解になりそう。
なので、ディレクトリの作成は、やっぱりキーボードマクロだったりして。
そして、ファイル実体の書き換え時は
 >awk -f a.awk %1 > %2
みたいなバッチファイルを作ることになりそう。

単純なコピーなら、こんな難しいことはしなくてすむんですけどねぇ。
 

タイトルRe^2: ディレクトリ構造のコピー(再)
記事No3107
投稿日: 2018/09/18(Tue) 11:57
投稿者文太
レス元3105
>おそらく、sedでは不必要に難解になりそう。
 はい、僕もつい先日、ああ、awkだったら、こんなに簡単だった
のかぁ、というのを経験しました。文字列を変数に保存して複数の行
で使いまわす、たったのそれだけのことだったのだけど。
 複数の行になると、sedは、とたんに、、、。
 それでも、p,d,P,Dを使えると、ちゃんと動いたとき、感動
します。
 あ、今回は違うけど、対象ファイルが100、いや20個を
超えて、それも元ファイルを残さないと心配みたいな処理は、僕は
Vzマクロから逃げるのです。どうでもいいことだけど。


>dir /s /ad Windowsのルートでやると、すごいよね。

 変な話だけど、遠い昔、bltのロングバージョンを作るよう
差し向けてくれて(?)、ありがとうございました。あれは、
のちのちとても大きかったのです。大昔のお正月ころのお話。