[Windows 10][2021/12]現在は逆[2020/09]Notepad.exeの/a及び/uオプションは、新規に作成するファイル名に前置すると構文エラーになる

#重要なお知らせ
2021/12 追記
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/722cce6e-10e7-6d43-f4b8-369e9ee6754d.png)
Windows10　20H2ではこのときとは逆にオプションを前置しないと有効にならなくなっています。
後置してもエラーにはなりませんが、特に `/a`オプションは無視され、UTF-8になります。
またファイルを指定していない場合はオプションが効かずUTF-8になります。

### ANSI形式(Shift-JIS CP932)

```bat
%Windir%\System32\notepad.exe /a "C:\hoge\folder\aa.vbs"
notepad /a "C:\hoge\folder\aa.vbs"
```

### MicrosoftがいうUNICODE形式(UTF-16LE) (CP1200くらい)

```bat
%Windir%\System32\notepad.exe /w "C:\hoge\folder\aau16le.vbs"
notepad.exe /w "C:\hoge\folder\aau16le.vbs"
```

### UTF-8
何もつけないとすべてUTF-8になります。
また、オプションを後置すると無視されます。
ファイル名を指定しないとやはり無視され、UTF-8になります。

```bat
%Windir%\System32\notepad.exe "C:\hoge\folder\aautf8.vbs"
notepad.exe "C:\hoge\folder\aautf8.vbs"

notepad.exe "C:\hoge\folder\aautf8.vbs" /a
notepad.exe "C:\hoge\folder\aautf8.vbs" /w
notepad.exe /a
notepad.exe /w
```



#まずオプションの説明
##コードの入力の流れ
Notepad.exe 日本語の通称「メモ帳」は、ITを極めるほど使い続けるため、仙人クラスのWindows PCにはメモ帳しか入っていないときもあるそうです。
この理由は、メモ帳がコードを書くことができるからです。
もっともエラー訂正もなにもありません。
そのかわり立ち上げ、入力が早いです。
そして、たとえばVBScriptを「新規に入力する」という場合、E:\ドライブのような場所に新規作成するとします。
このとき、
<OL>
<li>WindowsキーとRキーを同時に押して「ファイル名を指定して実行」をだす。
<li>でてきた欄に`notepad /a "E:\Hellow.vbs"`と入力
<li>ファイルが見つかりません、新規に作成しますか？のメッセージが表示されるので、「はい(Yes Or OK)」をクリック
<li>Eドライブのルートに「ANSI形式」の`yokuaru.vbs`が作成されます。
<li>このとき<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/5e3d69b3-417e-9610-c079-77fe16a64c27.png)</br>右端で折り返すのチェックを外します。
<li>そして、ステータスバーにチェックをいれます。最近のNotepadにはZoom機能も付きました。<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/9334a8b4-8f11-41eb-5f92-137de5b102ef.png)</br><br>こうすると行と列が表示されCtrl+Gで指定行へ飛ぶことができます。これが開発を補助します。VBScriptをCScriptで起動すると、行と列が表示されますが、これと、一致します。</br><br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/d594fb6d-e33f-35e3-6d74-390807f58c72.png)</br><br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/a5f78abc-e60e-e8dd-6ecf-f02d9dfad8e6.png)</br>
<li>コードを入力したら「上書き保存(ctrl+s)」ここで、<b>「メモ帳を閉じない」</b>というのがポイントです。
<li>これはCmd.exeを起動し、コマンドラインからでも実行可能です<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/293a9e95-fd8c-2912-e0c5-902fd8fed4ec.png)</br><p>まず、`notepad.exe　/a "E:\Hellow.vbs"`と入力</p><br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/01c753a3-550e-0753-5bf3-fe6ec9e0b05d.png)</br><p>ファイルがないと問い合わせてきます。画面ではHになっていますが、Eに読み替えてください</p><br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/d931e7f7-6d56-6886-169e-6fac08adb256.png)</br><p>コードの入力が終わり、Ctrl+Sで上書き保存します。コマンドプロンプト画面に戻ります。このとき、`cd /d E:`でEドライブのルートに移動しておきます</p><br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126919/89825a1a-a521-1aad-bdb6-224cb06103b4.png)</br><p>`Cscript hello`まで入力してTabを押すとPowershellと同様に`Hellow.vbs`が補完されます。Enterを押すと実行結果が出ます。エラーが出た場合には「開いたままのメモ帳」に戻り、コードを訂正してまたコマンドプロンプトに戻り、上矢印キーを押すと、入力履歴から`Cscript //nologo hellow.vbs`がでるのでEnterをおします</p>
<li>このように上書き保存、上矢印からEnterを押して実行し、エラーを見つけて、メモ帳のコードを修正してはCtrl+sで保存、コマンドプロンプトに戻り上矢印からEnterを押して実行、という流れでVBSCriptの記述をすることがスムーズになります。メモ帳は複数起動できるので、複数のVBSを同時に編集できたりします。
</OL>

##/aはANSIを強制するVBSにとって重要な機能
とくにデフォルトがUTF-8になりましたが、VBSCRIPTをUTF-8で起動するとエラーになります。このため　`/a`オプションが重要になりました。ANSIの場合ユニコード文字やサロゲートペア文字が直接打てませんが、文字コードで対応します。

##オプションを前置するとエラーになる
よくわからないのが最近`notepad /a "E:\Hellow.vbs"`として実行すると、しばしば「構文エラー」が起きます。
これを回避するには、`notepad "E:\Hellow.vbs" /a`とオプションを後置すると良いです。