またまたWindowsと戦う
FirstUPDATE2022.7.30
@Scribble #Scribble2022 #Windows #PC 単ページ バッチファイル 全角スペース問題 OS再インストール コマンドプロンプト

先日、母艦PCが急に立ち上がらなくなって、復旧がてらWindows10にしようとしたらエラい苦労した、みたいな話を長々と書いたばかりなんですが。

それから約2週間。
ようやく環境も元に戻せた、とまではいかないけど、本当、あと一歩までは来ていたのです。
やれやれ、と思っていた矢先、ちょうどアタシが夏風邪を拗らせ始めた頃だったのですが、突然、ショートカットアイコンがウンともスンとも言わなくなった。ショートカットではなく実体ファイルからならソフトを立ち上げたり出来るんだけど、マジでショートカットが使えないとなると操作性もなにもあったもんじゃない。

で、いろいろ検索したのですが、中には復旧方法を載せてくれているサイトも見つかったんだけど、ぜんぜん元に戻らない。
こうなったらしょうがない。再びのOS再インストールしかないわけです。ああ、これでこの一ヶ月で2度目の再インストールだよ。いや厳密には4度目か。
しかしね、アタシも夏風邪で余程ボーッとしていたのか、たいしてバックアップも取らずに再インストールをやっちまった。まァ前回再インストールした時のバックアップはあるんだけど、それでもWindows10用にいろいろ変更したのが水の泡になってしまったわけで。
熱がある時にこんなことするもんじゃないね。

今回、もう二度とこんなことを繰り返すのは嫌なので、いろいろと<やり方>を見直したりしました。
とくに根本的に変えようと思ったのがバッチファイルの作り方を大幅に変更した。というのもですね。
どうもWindows10になってからだと思うんだけど、コマンドプロンプトの仕様が変わったのかなんなのか、引数の扱いが変わったみたいなんですよ。
コマンドプロンプトの画面にファイルをドラッグアンドドロップしたらパスが表示されるはずですが、ファイル名に全角スペースが入ってたら上手くいかなくなった。少なくともバッチファイルだと上手くいかない。
例を挙げるならば

C:\あ い.txt

フルパスがこんな感じのファイルなら

C:\あ



い.txt

に分割されてしまうのです。つまり全角スペースが区切りと判別されてしまうと。
たぶんこれ、Windows7ではこうはならなかったはずで、もう手元にWindows7機がないので確かめようもないんだけど、とにかくこの仕様は不便すぎる。全角スペースの数だけ分割されるんだから。

アタシはね、バッチファイルからフルパスを取得してスクリプトに送るってのをやってるので、バッチファイルから正確なフルパスが取得出来ないとするなら困りすぎる。つか使い物にならない。
これまた散々検索して、全角スペース回避かつ複数ファイルのフルパスが取得出来る方法をやっと見つけてね、もちろんそれを自分なりにアレンジして(具体的には取得したフルパスをすべてレジストリに書き込む)、さらにスクリプトで処理するようにしたと。
バッチファイルもなるべく不具合が起こりづらいように、Cドライブ直下のフォルダに入れることにした。これでたぶん、バッチファイルの場所を見失って、という可能性はなくなるはずです。

これはWindowsに限らず、MacでもiPhoneでもAndroidでも同じなんですが、トラブルに見舞われるたびに詳しくなる、という構図は普遍だな、と。
逆の言い方をするなら「トラブルが起こらないとどうやっても詳しくなれない」とも言えるわけで、いやいや、そりゃあ詳しくないより詳しい方がいいけど、トラブルはもう懲り懲りだよ。
とくにWindows関連のトラブルは、完全に元に戻そうとなると数日掛かりになるのが辛い。

つかWindowsではなくてありゃ「Drawers」だわ。
たしかにいろいろイジれることはイジれるんだけど、無数のわかりづらい引き出しがいっぱいあって、余程マメな人でない限り「完全に元に戻す」とか無理だよ。
っても「ファイルがどこにあるかわからない」とかじゃないよ。それはわりと簡単に見つけられるし。ファイル云々じゃなくて「構造自体が謎の仕様だらけの無数の引き出し」というか。


↑に引き出し式カセットテープケースのことを書いたけど、Windowsを使いこなせる人ってカセットテープで言えばマメにインデックスシールとか貼り付けられる人だよな。







Copyright © 2003 yabunira. All rights reserved.