これは、コマンドプロンプト(cmd.exe) Advent Calendar 2015 - Qiitaの9日目の記事です。※Windows 10 Home 64bit 搭載のcmd.exeにて検証を行っています。BATファイルを使って、VBのLEFT関数みたいなコマンドを作成します。
LEFT.bat

1
2
3
4
@set str=%~1
@set /a length=%~2
@call echo %%str:~0,%length%%%

さて、実行してみましょう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
C:\Users\kunst\Desktop>left hoge 2
ho

C:\Users\kunst\Desktop>left hoge 3
hog

C:\Users\kunst\Desktop>left hoge 6
hoge

C:\Users\kunst\Desktop>left hoge -1
hog

こんな感じっすね!set /?の際(コマンドプロンプトで読んでおくべき7つのHELP - その⑤「set /?」 - くんすとの備忘録)に取り上げた、部分文字列の抜き出しを行っています。

call echo

1
2
@call echo %%str:~0,%length%%%

の部分ですが、コマンドラインを2回展開しています。callで「echo %%str:~0,%length%%%」を呼び出した際に「%length%」が変数の値に、「%%」が「%」に展開されます。
展開後の「echo %str:~2%」が実際に実行され、部分文字列が出力されます。