yakataの情報奮闘記

プログラミングの話をします

久しぶりにbat fileやったら結構ハマった話(テンプレートファイルの作成bat)

記事更新が滞っているヤカタです。 今回競技プログラミングのためのテンプレートを作成するためにいろいろ頑張っていたらおまじないが結構あったので、備忘録を兼ねて記事にしました。

コード

@echo off
setlocal enabledelayedexpansion
cd %~dp0
chcp 65001

set BB=#include^<iostream^>^

#include^<string^>
echo !BB!

pause

出力

#include<iostream>
#include<string>

解説

@echo off: これを書かないとログがうるさくなります。(逆に言うとそれだけなので、書かなくてもいい。デバック中は外すこと推奨) setlocaldelayedexpansion: 遅延環境変数を使うためのもの。(!!で囲まれたやつをつかうためのもの) cd %~dp0: このbat fileが存在するディレクトリをカレントディレクトリとする(~で代用できる) chcp 65001: utf-8で日本語表示するためのもの。文字化けを防ぐ

^<: "<"は特殊文字なので、エスケープする必要がある ^(改行): 改行は”\n”じゃなくてほんとの改行。改行も特殊文字なので、エスケープする必要がある。