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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@set str=%~1
@set /a length=%~2
@call echo %%str:~0,%length%%%

```さて、実行してみましょう。
```dosbatch
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 /?の際(<a href="http://kunst1080.hatenablog.com/entry/2015/12/06/180843">コマンドプロンプトで読んでおくべき7つのHELP - その⑤「set /?」 - くんすとの備忘録</a>)に取り上げた、部分文字列の抜き出しを行っています。<br/>
<br/>


<div class="section">
    #### call echo
    ```dosbatch
@call echo %%str:~0,%length%%%

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

</div>