過去の桐井戸端BBS (桐談義・その他) |
13379 | Windows2000で桐のプログラムを走らせると相対パスがうまくいかない | iny | 2001/10/05-11:56 |
お疲れ様です。 今回、今までWINDOWS95、98、MEで作成していた桐のプログラムを WINDOWS2000で走らせようとすると、相対パスが 上手く動きません。 具体的には "...\common\〜"と、.を3つ以上つけるとファイル名エラーとなり、 "..¥common\〜"と2つまでなら、ファイル名を正確に認識します。 WINDOWS2000では、相対パスの見方が何か違うのでしょうか? 宜しくお願いします。 | |||
13386 | Re:windows2000の相対パスについて | ばしけん | 2001/10/05-20:46 |
記事番号13379へのコメント inyさん、こんばんわ。 >今回、今までWINDOWS95、98、MEで作成していた桐のプログラムを >WINDOWS2000で走らせようとすると、相対パスが >上手く動きません。 > >具体的には "...\common\〜"と、.を3つ以上つけるとファイル名エラー >となり、"..¥common\〜"と2つまでなら、ファイル名を >正確に認識します。 > > >WINDOWS2000では、相対パスの見方が何か違うのでしょうか? 親ディレクトリへの相対パスは「..」が正しく、3つ以上は明らかに誤りです。 今まで作成していたプログラムが"...\common\〜"で動いていたこと自体が おかしいですので、"..¥common\〜"と2つに修正することをお奨めします。 以下は蛇足です。 因みに、コマンドプロンプト/DOSプロンプトで確認したところ、 "cd ..." → Win98:エラー、Win2000:無視 "type ...\test.txt" → Win98:エラー、Win2000:エラー (親ディレクトリにファイルは実在します) "cd ...\subdir" → Win98:エラー、Win2000:ディレクトリ移動! (subdirは実在します) となりました。Win2000の挙動にはちょっとびっくり(^^;; あと、ファイルオープン時のダイアログでファイル名のところに "...\test.txt" と入力するとやはりエラーになりました。 | |||
13389 | Re:windows2000の相対パスについて | hidetake | 2001/10/05-21:15 |
記事番号13386へのコメント >親ディレクトリへの相対パスは「..」が正しく、3つ以上は明らかに誤りです。 これは Windows9x にある \windows\tips.txt に 記載されている内容であり誤りでは無いのです・ >[ディレクトリの移動] >ディレクトリの移動には、次のような便利な方法が使用できます。 >. = 現在のディレクトリ >.. = 親ディレクトリ >... = 2 つ上のディレクトリ (Windows 95 の新機能) >.... = 3 つ上のディレクトリ (Windows 95 の新機能) >たとえば、C:\Windows\System\Viewers ディレクトリにいるときに、"cd...." と >入力すると、C:\ に移動できます。 ただ、DOS時代からの慣習とも異なりますし、 Windows9x では使えるけど他では使えないだけです。 ちなみに? DOS 5.x 時代から使えた truename と言う 内部コマンドも NT(2000) 系では使えません。 これは公開コマンドでは無いのですけど・・・ (^^; | |||
13407 | Re:windows2000の相対パスについて | ばしけん | 2001/10/09-19:41 |
記事番号13389へのコメント hidetakeさんは No.13389「Re:windows2000の相対パスについて」で書きました。 >>親ディレクトリへの相対パスは「..」が正しく、3つ以上は明らかに誤りです。 >これは Windows9x にある \windows\tips.txt に >記載されている内容であり誤りでは無いのです・ > >>[ディレクトリの移動] >>ディレクトリの移動には、次のような便利な方法が使用できます。 >>. = 現在のディレクトリ >>.. = 親ディレクトリ >>... = 2 つ上のディレクトリ (Windows 95 の新機能) >>.... = 3 つ上のディレクトリ (Windows 95 の新機能) >>たとえば、C:\Windows\System\Viewers ディレクトリにいるときに、"cd...." と >>入力すると、C:\ に移動できます。 げげっ。知りませんでした。どうもすみません。"C:\WINDOWS"で実験したのが間違いでした。 そんなファイル(\windows\tips.txt)があったとは...(汗) さらに誤りがあったので、補足します。 Windows2000で"cd ...\subdir"が通るのは、ルートディレクトリの直接のサブディレクトリにいる場合だけでした。 "C:\Program Files"で、"cd ...\WINNT"を実行するとディレクトリ移動しますが、 それより深いところからはダメでした。 「2つ上の」という意味にもなりません。 (だから、どうだということもないですが) >ただ、DOS時代からの慣習とも異なりますし、 >Windows9x では使えるけど他では使えないだけ >です。 > >ちなみに? DOS 5.x 時代から使えた truename と >言う内部コマンドも NT(2000) 系では使えません。 >これは公開コマンドでは無いのですけど・・・ (^^; ついでに? truenameコマンドって何するコマンドですか? | |||
13408 | Re:windows2000の相対パスについて | hidetake | 2001/10/09-20:58 |
記事番号13407へのコメント >ついでに? truenameコマンドって何するコマンドですか? Try! C:\>truename c:\windows\.\..\winodws\system\vmm32\.\..\..\ | |||
13425 | Re:truename?_? | pokopon | 2001/10/10-19:11 |
記事番号13407へのコメント ばしけんさん こんにちは >ついでに? truenameコマンドって何するコマンドですか? >Try! >C:\>truename c:\windows\.\..\winodws\system\vmm32\.\..\..\ トライしてみましたか? な〜んにも表示されないですね(実は表示されています)。 これこそ Try!! C:\>truename c:\windows\.\..\winodws\system\vmm32\.\..\..\ C:\>truename c:\windows\.\..\winodws\system\vmm32\.\..\ C:\>truename c:\windows\.\..\winodws\system\vmm32\.\ と、..¥をセットで消して実行してみましょう。 続けて実行すれば、結果は・・・・おのずとわかりましたね。 hidetakeさんは意地悪ですね〜〜。 m(__)m という私も (^^ゞ 参考: http://www25.cds.ne.jp/~kamiken/bach/b_comand.html でした。 | |||
13497 | Re:truename?_? | ばしけん | 2001/10/15-19:26 |
記事番号13425へのコメント hidetakeさん、pokoponさん、こんばんは。 >Try! C:\>truename c:\windows\.\..\winodws\system\vmm32\.\..\..\ C:\WINDOWS\ C:\>truename c:\windows\.\..\winodws\system\vmm32\.\... C:\WINDOWS なるほど、納得。ありがとうございました。 最後の"\"をつける/つけないも結果に反映されています。(^o^) C:\WINDOWS>truename ..\windows\system32\.\..\.. というのもやってみました。機械的に作成した相対パス→絶対パスに使えますね。 でも、隠しコマンドなんですね。NT系はダメだし。 >参考: >http://www25.cds.ne.jp/~kamiken/bach/b_comand.html >でした。 ありがとうございます。復習します。 "truename"はshort nameを返すそうですので、"PROGRA~1"になるってことですね。 DOSコマンドも、95/98系とNT/2000系でそれぞれ独自拡張があって、 不便に感じることもありますね。 |