Windows XPのバッチに関してです。

バッチパラメータでファイル名を渡した時に、"%~s1"でそのショートファイル名が
得られますが、ファイル名が6文字以下、かつ拡張子が4文字以上の場合に変な
値となります。(おかしくなる条件の絞込みが甘いです)

例:
 12345.123   → OK
 12345.1234  → NG (末尾にゴミが入る)
 123456.123  → OK
 123456.12   → OK
 123456.1234  → NG (末尾にゴミが入る)
 1234567.1234 → OK

バグ? どうすればいいでしょうか? 何が悪いのでしょうか?