プロが教えるわが家の防犯対策術!

以下の様なテストスクリプト作り、SendToフォルダに入れます。
ファイルでもフォルダでもかまわないので、全角スペースを含む名前で作成します。
これを選択して、コンテキストメニューの送る→test.cmdを実行します。

test.cmd
--------
echo %%1 "%1"
echo %%2 "%2"
echo %%3 "%3"
echo %%4 "%4"
pause

本来なら、 %1 に入るはずのパスが、全角スペースの部分で分割され、複数のパラメータに入ってしまっていると思います。

これは、Windowsのバグなのでしょうか?
何か回避する方法はありませんか。

A 回答 (3件)

その二つのファイルをデスクトップに置いた場合と


例えばドライブのルートに置いた場合では挙動が変わりますか?
なんかかなり前に問題になっていたような気がしますね。
普通だったらショートファイルネームとして処理されるのに
そうじゃない場合があってみたいな話だったかな?
忘れちゃいましたねえ。

この回答への補足

アドバイスありがとうございます。

パスの中に半角スペースがあると、全角スペースで分割される現象は起きないようです。

"C:\te st\新規テキスト ドキュメント.txt"
これなら、 %1 にフルパスで入ります。

"C:\test\新規テキスト ドキュメント.txt"
は、

%1 "C:\test\新規テキスト"
%2 "ドキュメント.txt"
%3 ""
%4 ""

となります。

補足日時:2009/02/13 23:47
    • good
    • 0

私の環境でも普通に%1にフルパスで入りました。


"新規 テキスト ドキュメント.txt"も"新規テキスト ドキュメント.txt" もOKです。

* WindowsXP pro sp3

この回答への補足

Windows XP Professional SP3 で確認してみましたが、やはり、全角スペースで分割されます。

補足日時:2009/02/13 23:37
    • good
    • 0
この回答へのお礼

検証ありがとうございました。

お礼日時:2009/02/13 23:32

貴方のPCがおかしいだけだと思います。



記載されているバッチファイルをsendtoに登録して試しましたが、ちゃんと%1に、フルパスまとめて入ってます。

WinXP Pro SP3にて。

この回答への補足

アドバイスありがとうございます。

正常に処理される場合とそうでないがあるようです。

例えば、 "新規 テキスト ドキュメント.txt" は問題ないのですが、
"新規テキスト ドキュメント.txt" は、私の環境では全角スペースで分割されて、

%1 "U:\___Work\新規テキスト"
%2 "ドキュメント.txt"
%3 ""
%4 ""

となります。

補足日時:2009/02/13 10:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!