Re: Windows XP Home と dviout のニコニコ・マーク(原因)

名前: hoge
日時: 2005-09-19 19:33:55
IPアドレス: 133.31.18.*

>>38133 >>38133 これはWindowsのバグなのか、特性なのかわかりませんが、ともかく、 次のことが確かめられました.WinXPでの話です. フォルダ名と半角空白に対して  ・半角空白を含むフォルダは環境変数Pathに指定するとき、"でくくってはいけない.    コマンドプロンプトでコマンド実行する際にはcdではくくらなくともよいが、    batではくくらないと分断されて認識されるので、くくる必要がある.  ・フォルダやファイル名に半角空白を含む場合、コマンドプロンプトにそれらをドロップしたときは    自動的に"でくくってくれる.  ・フォルダ名の最後には半角を1つも入れることができない.入れたつもりでもWindowsが除去してしまう 1つ目、2つ目はご存知の方も多いと思いです. フォルダ名と全角文字に対して  ・全角文字があっても、pathの設定ではくくる必要はない  ・フォルダやファイル名に全角文字を含む場合、コマンドプロンプトにそれらを    ドロップしても"でくくられることはない.  ・実際コマンドプロンプトでcd やバッチファイルは、"でくくることなく実行できる ところが全角空白のとき(だけ?)は少し違う挙動を示します. 1つ目、2つ目は上と同じです.3つ目のcdコマンドも問題なく実行できます. しかしバッチファイルは実行できませんでした. ドロップしたとき、自動的にはくくらないのに、そのまま実行するとフォルダ名が切れるのです. それと環境変数TMPやTEMPですが、基本的にはショートファイル名で設定されるようです. 全角文字も含んでいるときはロングファイル名になることもあり、機種によっても違うようで、よく分かりません. しかしフォルダ名の全角3文字以内に全角空白をいれると、どっちにしろ全角空白がフォルダ名の 一部として有効になってしまいます. 結局この2つのWindowsのおかしな動作がdvitmp.batを実行できない原因のようです. つまり TMPの中に、フォルダ名の3文字めまでに全角空白を含むようなものがある →(ショートでもロングでも)フォルダ名に全角空白が使われる →環境変数TMPで指定したフォルダに生成されたdvitmp.batのパス名が正しくとれない 環境変数TMPの注意はGhostscriptのインストールに対しては「日本語名があるとまずい」ということが あるようですが、dvioutに対しても例外的に注意が必要ということになりそうです. 典型的にはユーザアカウントを「東 一郎」「北野 武」「野茂 英雄」などとしたとき、 TMP=%USERPTROFILE%\Local Settings\Temp と設定され、実際には C:\DOCUME~1\東 一郎\LOCALS~1\TEMP などとなります. # ユーザ名は一度作るとアカウント名は変えられてもプロファイル名が変更できないので困ります. やはり、TMPを半角英数字だけのフォルダに設定するのが一番問題がないです. そして、願わくば、dvioutのバッチファイル実行時のパス名にショートファイル名であっても"でくくる 作りにしていただけると上記の全角空白が入ったパスでも実行できるようになるはずです. コマンドプロンプト上ではそれで実行できることを確認しました.

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)