エラーになると言っておいてエラー内容を書かないのはなんで?

多分、ダブルクオートで囲って @ や % が変数に展開されてるに一票。