yakataの情報奮闘記

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

バッチファイル出来たので共有

先のbat fileが作れたからおいておきます。 仕様 問題数は何問ですか?(0でmain.cppのみ作成) と表示されたら整数を入力

0の場合カレントディレクトリにmain.cppを作成 1以上の場合main.cppの入ったquestion_?ディレクトリを入力数だけ作成

テンプレートはtempuraさんのAtcorder提出分をお借りしました。 変数代入部分は難しくないので、独自に改定して使えると思います。

@echo off
setlocal enabledelayedexpansion
cd %~dp0
chcp 65001

call :MakeDirectory
REM call :SetTemplate
exit /b

:SetTemplate
set CC=#include^<iostream^>^

#include^<string^>^

#include^<algorithm^>^

#include^<vector^>^

#include^<iomanip^>^

#include^<math.h^>^

#include^<complex^>^

#include^<queue^>^

#include^<deque^>^

#include^<stack^>^

#include^<map^>^

#include^<set^>^

#include^<bitset^>^

#include^<functional^>^

#include^<assert.h^>^

#include^<numeric^>^

using namespace std^;^

#define REP(i,m,n) for(int i=(int)m ; i ^< (int) n ; ++i )^

#define rep(i,n) REP(i,0,n)^

typedef long long ll^;^

typedef pair^<int,int^>^ pint^;^

typedef pair^<ll,int^>^ pli^;^

const int inf=1e9+7;^

const ll longinf=1LL^<^<60 ;^

const ll mod=1e9+7 ;^

int main^(^)^{^

    ^

}

echo !CC! > main.cpp
exit /b

:MakeDirectory
set /p question_number="問題数は何問ですか?(0でmain.cppのみ作成)>>>"
if %question_number%==0 (
    call :SetTemplate
) else (
    for /l %%i in (1,1,%question_number%) do (
        mkdir question_%%i
        cd question_%%i
        call :SetTemplate
        cd ..
    )
)