複数ファイルを指定すると新規ファイル扱No.18467
h-tom さん 04/12/05 20:23
 

h-tom です。

コマンドプロンプトからカレントディレクトリにあるファイルを開くために、
 hidemaru.exe 1.txt 2.txt
と入力したところ、"C:\TEMP\1.txt 2.txt"という新規ファイルと認識されて
しまいます。

 hidemaru.exe "1.txt" "2.txt"

 hidemaru.exe C:\TEMP\1.txt C:\TEMP\2.txt
だと問題ありません。(二つのファイルが開きます。)

OS:Windows2000 SP4
秀丸:Version 4.14

[ ]
RE:18467 複数ファイルを指定すると新規フNo.18476
秀丸担当 さん 04/12/06 16:36
 

>コマンドプロンプトからカレントディレクトリにあるファイルを開くために、
> hidemaru.exe 1.txt 2.txt
>と入力したところ、"C:\TEMP\1.txt 2.txt"という新規ファイルと認識されて
>しまいます。

これは、空白を含むファイル名もあるので、そのように指定した場合は、1つの
ファイルとして認識します。
複数のファイルとして認識させる場合は、""でくくってください。
""でくくってなくても、c:\などという文字列が途中に含まれていれば、複数の
ファイルとして認識します。

エクスプローラから、1つまたは複数のファイルをドラッグ&ドロップしてアプ
リケーションを起動する場合、Windowsの振る舞いが違います。

1つのファイル「a.txt」の場合
hogehoge.exe c:\a.txt

1つのファイル「a a.txt」の場合
hogehoge.exe c:\a a.txt

2つのファイル「a.txt」「b.txt」の場合
hogehoge.exe c:\a.txt c:\b.txt

2つのファイル「a a.txt」「b.txt」の場合
hogehoge.exe "c:\a a.txt" c:\b.txt
(Win95系の場合は短縮ファイル名で hogehoge.exe c:\a~1.txt c:\b.txt だっ
た気がします)

これらのWindowsの動作に適切に対応するためにそのような判断になっています。

[ ]
RE:18476 複数ファイルを指定すると新規フNo.18478
秀丸担当 さん 04/12/06 17:22
 

>1つのファイル「a a.txt」の場合
>hogehoge.exe c:\a a.txt

自己レスですが、ここは違いました。
hogehoge.exe "c:\a a.txt"
でした。

ファイルのドラッグ&ドロップだけでなく、他の理由があったからだと思います。
関連付けのでhidemaru.exeが起動する場合や、IEのhtmlエディタとして開く場合
や、他のアプリケーションの外部エディタとして指定している場合など、""無し
で空白を含むファイル名を認識しなくてはいけません。

[ ]
RE:18476 複数ファイルを指定すると新規フNo.18480
h-tom さん 04/12/06 23:01
 

h-tom です。

>これは、空白を含むファイル名もあるので、そのように指定した場合は、1つの
>ファイルとして認識します。
>複数のファイルとして認識させる場合は、""でくくってください。
>""でくくってなくても、c:\などという文字列が途中に含まれていれば、複数の
>ファイルとして認識します。
<省 略>
>これらのWindowsの動作に適切に対応するためにそのような判断になっています。
了解しました。
実際にはバッチファイルを使ってるので、そちらを変更して対応します。

[ ]