アカウント名:
パスワード:
そのまえにだなぁ、ファイル名フォルダ名にスペースを許可した輩が最初に...!
フォルダ名やファイル名にスペースが入っていたとして、いったい何がいけないって言うんですか?どんなタコなプログラムで問題になるの?
お宝映像!!!.jpg .exe
「映像」なのに JPEG かよっ! 動画じゃないのかよっ!
どんなタコなプログラムで
WC以後、「タコな」は完全な [wikimedia.org]の比喩表現になりました。 うそです。
スペース入りのファイル名が鬼門なのはUNIX系でも一緒だし、そういう場合、find -print0 で出力して、xargs -0 で受けるのが基本じゃないかな。
find ... -print0grep --null ...sort -z ...xargs -0 ...
オプション統一してくれや……。
スペース入りを考慮してプログラムを書くようになるだろ?PCの世界は、現実世界のメタファーとなるようになるべく自然に名前を付けたりしたいからスペース入れるなとか、カンマ入れるな、日本語入れるなってのは甘えだと思います。それらをクリアして、しかもスマートに実装するのが腕。
自分の書いたプログラムがタコなのは仕方ないが、自分の腕と関係ない所でコケるのは勘弁して欲しい。
>"Program Files"にスペースが入っているのは、マイクロソフトの開発者への愛情の現われだよ。プログラマにスペースの扱いを教えるのに、これほど良い物はなかなか無いと思いますよ。これが無ければ未だに「利用するフォルダの名称にスペースは入れないで下さい」なんてのが多々あったかも知れない。
USとJPのWindowsはProgram Filesなんですが、他言語だとスペース無しの別の言葉に翻訳されてたりするんすよ。Programmieとかなんとか(忘れた)今時はもうこういう話でエラーになるプログラムもめったに無いですが、ちょっと前だとたまにありました。プログラム本体は大丈夫でも、インストール中に走らせるおまけのスクリプト中でおもいっきりProgram Files指定しちゃってたり。
はい、チェコ語のWindowsでDocument and Settingsの綴りが違っていて死にました。ごめんなさい。
オレアプリ専用にDocument and Settingsを作ってもらいました。
他にもAdministratorも別の綴りだったりするので要注意ですね。
# 定数&API使おうねー
これのlpApplicationNameの解説を読んでもなおパスにスペースが入ったほうが良いとおっしゃる? こんな複雑怪奇なことするぐらいなら「スペースは使えません」のほうが遥かにマシ。
引用符で囲えば良いだけですな。もしくは、両方の引数を使えば問題ない。
MS製品に良くある救済措置が面倒な事になってるのは良くある事ですし・・・
# ちなみに、foo.exeのargv[0]がbar.exeどころか、baz.txtになってる事もあるので注意しましょう。
dirコマンド。 [twitter.com]Windows7でも直ってません。
それ、dirコマンドじゃなくて、cdコマンドの仕様なんだと思われ。cdコマンドは取れる引数は1つのはずなので、途中の空白を名前とみなす仕様なのであろう。環境変数じゃなくて、Program Filesでやってみると解かる。(くくらない)多分、期待した動作させたいなら、"%ProgramFiles%"で実行せよ。Linuxのcdコマンドにはそんなやさしさないので、どっちもdirの動作と同じになる。
C:\Windows\system32>cd /?現在のディレクトリを変更したり、ディレクトリ名を変更したりします。CHDIR [/D] [ドライブ:][パス]CHDIR [..]CD [/D] [ドライブ:][パス]CD [..] .. 親ディレクトリに変更するときに指定します。CD ドライブ: と入力すると指定されたドライブの現在のディレクトリが表示されます。パラメータを指定しないで CD と入力すると、現在のドライブとディレクトリが表示されます。現在のディレクトリだけでなく、現在のドライブも変更するには /D オプションを使用してください。コマンド拡張機能を有効にすると、CHDIR は次のように変更されます:現在のディレクトリの文字列に入力された大文字と小文字は、ディスク上の名前と同じになるように変換されます。たとえば、ディスク上のディレクトリ名がTemp である場合、CD C:\TEMP と入力すると、現在のディレクトリは C:\Temp に設定されます。CHDIR コマンドは空白を区切り文字として扱わなくなるため、空白文字を含むサブディレクトリ名を引用符で囲まなくても、CD を実行してにそのサブディレクトリに移動できるようになります。たとえば、 cd \winnt\profiles\username\programs\start menuは、次と同じです: cd "\winnt\profiles\username\programs\start menu"拡張機能が無効である場合は、こちらを入力します。
C:\Windows\system32>cd /?現在のディレクトリを変更したり、ディレクトリ名を変更したりします。
CHDIR [/D] [ドライブ:][パス]CHDIR [..]CD [/D] [ドライブ:][パス]CD [..]
.. 親ディレクトリに変更するときに指定します。
CD ドライブ: と入力すると指定されたドライブの現在のディレクトリが表示されます。パラメータを指定しないで CD と入力すると、現在のドライブとディレクトリが表示されます。
現在のディレクトリだけでなく、現在のドライブも変更するには /D オプションを使用してください。
コマンド拡張機能を有効にすると、CHDIR は次のように変更されます:
現在のディレクトリの文字列に入力された大文字と小文字は、ディスク上の名前と同じになるように変換されます。たとえば、ディスク上のディレクトリ名がTemp である場合、CD C:\TEMP と入力すると、現在のディレクトリは C:\Temp に設定されます。
CHDIR コマンドは空白を区切り文字として扱わなくなるため、空白文字を含むサブディレクトリ名を引用符で囲まなくても、CD を実行してにそのサブディレクトリに移動できるようになります。たとえば、
cd \winnt\profiles\username\programs\start menu
は、次と同じです:
cd "\winnt\profiles\username\programs\start menu"
拡張機能が無効である場合は、こちらを入力します。
むしろそろそろ MS-DOS 互換ファイル名を廃止したいなあ。うっかり *1.* とか *2.* なんて打った日にはあれもこれもヒットしてえらい目に遭う。
既に設定ひとつで廃止できるんだけど、実際やるとコケるアプリが少なくないんだ、いまだに。
IE。
実装レベルのスペースなんかユーザーに見せるなっつーの。それにコマンドラインで打つときもスゲー邪魔。よっぽどの阿呆でなければあんな設計はしない。
#そのくせ拡張子は事実上3文字限定だったし、大文字と小文字は区別できないし、支離滅裂。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
C:\Program Files (x86) (スコア:5, おもしろおかしい)
ただ死んで終わるものではない。唯一神が地獄の業火に(以下略
Re: (スコア:0)
そのまえにだなぁ、
ファイル名フォルダ名にスペースを許可した輩が最初に...!
Re:C:\Program Files (x86) (スコア:2, おもしろおかしい)
フォルダ名やファイル名にスペースが入っていたとして、いったい何がいけないって言うんですか?
どんなタコなプログラムで問題になるの?
Re:C:\Program Files (x86) (スコア:4, おもしろおかしい)
だまされたっ! (スコア:1, おもしろおかしい)
「映像」なのに JPEG かよっ! 動画じゃないのかよっ!
Re:C:\Program Files (x86) (スコア:4, おもしろおかしい)
どんなタコなプログラムで
WC以後、「タコな」は完全な [wikimedia.org]の比喩表現になりました。 うそです。
Re:C:\Program Files (x86) (スコア:1)
Re:C:\Program Files (x86) (スコア:1)
スペース入りのファイル名が鬼門なのはUNIX系でも一緒だし、そういう場合、
find -print0 で出力して、xargs -0 で受けるのが基本じゃないかな。
Re:C:\Program Files (x86) (スコア:1)
find ... -print0
grep --null ...
sort -z ...
xargs -0 ...
オプション統一してくれや……。
Re: (スコア:0)
スペース入りを考慮してプログラムを書くようになるだろ?
PCの世界は、現実世界のメタファーとなるように
なるべく自然に名前を付けたりしたいから
スペース入れるなとか、カンマ入れるな、日本語入れるなってのは
甘えだと思います。
それらをクリアして、しかもスマートに実装するのが腕。
Re:C:\Program Files (x86) (スコア:1)
自分の書いたプログラムがタコなのは仕方ないが、自分の腕と関係ない所でコケるのは勘弁して欲しい。
署名スパムがウザい?アカウント作って非表示に設定すればスッキリさ。
Re: (スコア:0)
Re:C:\Program Files (x86) (スコア:2, すばらしい洞察)
>"Program Files"にスペースが入っているのは、マイクロソフトの開発者への愛情の現われだよ。
プログラマにスペースの扱いを教えるのに、これほど良い物はなかなか無いと思いますよ。
これが無ければ未だに「利用するフォルダの名称にスペースは入れないで下さい」なんてのが
多々あったかも知れない。
Re:C:\Program Files (x86) (スコア:4, 参考になる)
USとJPのWindowsはProgram Filesなんですが、
他言語だとスペース無しの別の言葉に翻訳されてたりするんすよ。Programmieとかなんとか(忘れた)
今時はもうこういう話でエラーになるプログラムもめったに無いですが、ちょっと前だとたまにありました。
プログラム本体は大丈夫でも、インストール中に走らせるおまけのスクリプト中でおもいっきりProgram Files指定しちゃってたり。
Re:C:\Program Files (x86) (スコア:1, 興味深い)
はい、チェコ語のWindowsでDocument and Settingsの綴りが違っていて死にました。
ごめんなさい。
オレアプリ専用にDocument and Settingsを作ってもらいました。
Re:C:\Program Files (x86) (スコア:1)
他にもAdministratorも別の綴りだったりするので要注意ですね。
# 定数&API使おうねー
Re: (スコア:0)
Re:C:\Program Files (x86) (スコア:1, 興味深い)
これのlpApplicationNameの解説を読んでもなおパスにスペースが入ったほうが良いとおっしゃる?
こんな複雑怪奇なことするぐらいなら「スペースは使えません」のほうが遥かにマシ。
Re:C:\Program Files (x86) (スコア:1)
引用符で囲えば良いだけですな。
もしくは、両方の引数を使えば問題ない。
MS製品に良くある救済措置が面倒な事になってるのは良くある事ですし・・・
# ちなみに、foo.exeのargv[0]がbar.exeどころか、baz.txtになってる事もあるので注意しましょう。
Re: (スコア:0)
>多々あったかも知れない。
未だにプログラムを入れる場所にスペースや非ASCII文字を入れるのは怖いですね。
勝手にProgram Filesに入るやつは、
逆にそのままにしておかないとバグる可能性があるので、
そのままにしてるけど。
土台ってのは開発者のスキルなんて上がらないって前提で
作ってほしいです。
Re: (スコア:0)
Re: (スコア:0)
Re: (スコア:0)
dirコマンド。 [twitter.com]
Windows7でも直ってません。
Re:C:\Program Files (x86) (スコア:1)
習得した(と思われる)Program Files=Progra~1(前6文字+チルダ+数字)とすればいいじゃなーい
と頭の中で簡単に変換出来るでしょ(笑)。
XPではCDコマンドもDIRコマンドも、上記ので問題無いね。
Windows Server 2008でもコレでいけるなぁ。
や、8.3形式に縛られるは馬鹿らしいってのは分かるんだけど、結局8.3形式が一番安全だという。
#流石に直ったけど、Windows2000位までは出来るだけ8.3で名前を付けるクセが抜けなかったなぁ。
Re: (スコア:0)
それ、dirコマンドじゃなくて、cdコマンドの仕様なんだと思われ。
cdコマンドは取れる引数は1つのはずなので、途中の空白を名前とみなす仕様なのであろう。
環境変数じゃなくて、Program Filesでやってみると解かる。(くくらない)
多分、期待した動作させたいなら、"%ProgramFiles%"で実行せよ。
Linuxのcdコマンドにはそんなやさしさないので、どっちもdirの動作と同じになる。
Re:C:\Program Files (x86) (スコア:1)
やなぎ
字面じゃなく論旨を読もう。モデレートはそれからだ
Re: (スコア:0)
むしろそろそろ MS-DOS 互換ファイル名を廃止したいなあ。
うっかり *1.* とか *2.* なんて打った日にはあれもこれもヒットしてえらい目に遭う。
既に設定ひとつで廃止できるんだけど、実際やるとコケるアプリが少なくないんだ、いまだに。
Re: (スコア:0)
IE。
実装レベルのスペースなんかユーザーに見せるなっつーの。
それにコマンドラインで打つときもスゲー邪魔。
よっぽどの阿呆でなければあんな設計はしない。
#そのくせ拡張子は事実上3文字限定だったし、大文字と小文字は区別できないし、支離滅裂。