二重引用符付きファイル名がsaveasやchangNo.17314
近田 さん 04/06/07 14:57
 
二重引用符付きファイル名がマクロのコマンドsaveasやchangenameでエラーになりま
す。
宜しくお願いします。

マクロ例:
  $tempvbs= "\""+currentmacrodirectory+"\\a.txt"+"\"";
 message $tempvbs;
 openfile $tempvbs;
 message str(result);
 loadfile $tempvbs;
 message str(result);
  changename $tempvbs;
  save;
 message str(result);
  saveas $tempvbs;
 
 

[ ]
RE:17314 二重引用符付きファイル名がsaveNo.17316
アルビレオ さん 04/06/08 00:50
 
秀丸ユーザーのアルビレオです。

>二重引用符付きファイル名がマクロのコマンドsaveasやchangenameでエラーになりま
>す。
>宜しくお願いします。

Windowsではファイル名に二重引用符は使えません。

コマンドラインなどでファイル名を指定するときは空白文字を複数のファイル名
の区切りとして使うので、空白を含んだファイル名を入力するときは二重引用符
で囲む必要がありますが、マクロでは空白を複数ファイルの区切りと認識する機
能はないので、二重引用符もファイル名の一部として解釈され「ファイル名に使
えない文字を使おうとした」ということでエラーになるのだと思います。

[ ]
RE:17316 二重引用符付きファイル名がsaveNo.17318
秀まるお2 さん 04/06/08 09:32
 
> Windowsではファイル名に二重引用符は使えません。

 それはたぶん承知の上で、とにかく秀丸の動作がおかしいことを報告いただい
たのだとは思いますが…。

 こちらで検証してからお返事しますので、少々お待ちください。

[ ]
RE:17316 二重引用符付きファイル名がsaveNo.17319
秀まるお2 さん 04/06/08 09:36
 
 今試してみて状況を理解しました。

 元々、秀丸マクロのchangename文は、指定されたパラメータがファイル名とし
て不正かどうかチェックしない仕様になってまして、それで保存の時にエラーが
出るのは仕方がないと思います。また、エラーが出ても、それで秀丸エディタの
動作が特別おかしくなる訳でもないようなので、このまま仕様ということでもい
いと思います。

[ ]
RE:17319 二重引用符付きファイル名がsaveNo.17374
近田 さん 04/06/13 02:33
 
>動作が特別おかしくなる訳でもないようなので、このまま仕様ということでもい
>いと思います。

出張中で、お返事が遅れて申し訳ありませんでした。
仕様と言うことで了解しました。

ただopenfileやloadfileなどと不統一なのが気にはなりますが。

ファイル名を引数にするコマンドや、関数はたくさんありますが、二重引用符で括っ
てはいけないものは

    changename
    saveas

だけでしょうか?もしお忙しかったらお答えくださらなくても結構ですが。

[ ]
RE:17374 二重引用符付きファイル名がsaveNo.17375
アルビレオ さん 04/06/13 05:13
 
秀丸ユーザーのアルビレオです。

>ただopenfileやloadfileなどと不統一なのが気にはなりますが。
>
>ファイル名を引数にするコマンドや、関数はたくさんありますが、二重引用符で括っ
>てはいけないものは
>
>    changename
>    saveas
>
>だけでしょうか?もしお忙しかったらお答えくださらなくても結構ですが。

このあたりは秀丸の仕様というよりWindowsのダイアログの仕様ではないかとい
う気がします。(はっきりしたことはわかりませんが)

見た目は似ていても、openfileやloadfileのダイアログは「すでにあるファイル
名を指すためもの」で、changenameやsaveasでは「新しいファイル名をつけるた
めのもの」です。
そのために後者ではファイル名に使えない文字を指定すると、エラーを表示して
注意をうながすのだと思います。

[ ]
RE:17374 二重引用符付きファイル名がsaveNo.17380
秀まるお2 さん 04/06/14 10:58
 
 openfileの場合は複数のファイル名を扱う可能性があるので、ダブルクォー
テーションで囲まれていてもちゃんと動作するんだと思います。

> ファイル名を引数にするコマンドや、関数はたくさんありますが、二重引用符で括っ
> てはいけないものは
>
>     changename
>     saveas

 僕自身もテストしない分からないというのが正直な所ですが、複数ファイル名
を扱えるかどうかってことで分かれるんだと思います。複数ファイル名が扱える
所はダブルクォーテーションファイル名も確実に扱えつつ、複数ファイル名が扱
えない所では、ダブルクォーテーションで囲んでもいいかどうか不定ってことに
なろうかと思います。

[ ]
RE:17380 二重引用符付きファイル名がsaveNo.17381
近田 さん 04/06/15 05:07
 
了解いたしました。

[ ]
RE:17375 二重引用符付きファイル名がsaveNo.17382
近田 さん 04/06/15 05:11
 
ご教示ありがとうございました。

[ ]
RE:17380 二重引用符付きファイル名がsaveNo.17383
三月 さん 04/06/15 05:56
 
> openfileの場合は複数のファイル名を扱う可能性があるので、ダブルクォー
>テーションで囲まれていてもちゃんと動作するんだと思います。
>
秀丸起動時のオプションもつかえるってのはその副産物でしょうか?

[ ]
RE:17383 二重引用符付きファイル名がsaveNo.17386
秀まるお2 さん 04/06/15 12:24
 
> 秀丸起動時のオプションもつかえるってのはその副産物でしょうか?

 これは意図してそうなってるようです。/hオプション付きでステルス秀丸にな
るとか、そういう使い方が出来るようにあえて作ったのだと思います。

[ ]