2016/12/21 自分用にメモを残しておこう。
いきさつ
Visual Studio Codeを使い始めて、どうせなら簡易C/C++開発環境を構築したいと思って様々ググっておりました。
[Visual Studio Code][Windows] C言語をビルド(コンパイル)&ステップ実行する
こちらで紹介されているbatファイルなのですが、コンパイルした後にVisual Studio Codeの出力画面で実行されてしまう。適当におググり申したけど、この出力画面から標準入力を流し込む方法が見つからなかった。残念。
ということで、コンパイルしたあとにコンソールから自動で実行するようにbatファイルをごにょごにょしました。安全性は保障しませんので、使用は自己責任でお願いします。
ソース
crun_gcc.bat
@echo off
REM --------------------------------------------
REM 引数が必要
REM 引数が相対パスでもフルパスに変換
REM %~d1 - %1 をドライブ文字だけに展開
REM %~p1 - %1 をパスだけに展開
REM %~n1 - %1 をファイル名だけに展開
REM %~x1 - %1 をファイル拡張子だけに展開
REM --------------------------------------------
if "%~dpnx1" equ "" goto :eof
REM --------------------------------------------
REM 環境変数のローカル化開始
REM --------------------------------------------
setlocal
REM --------------------------------------------
REM 追記:カレントディレクトリ変更
REM [Dir] : お好みのカレントディレクトリ
REM --------------------------------------------
REM cd [Dir]
REM --------------------------------------------
REM コンパイル実行(gcc)
REM 追記:ソースファイル名をそのままexeファイルの名前にするよ
REM --------------------------------------------
gcc -o %~n1.exe "%~dpnx1"
REM --------------------------------------------
REM EXEファイル実行
REM 追記:新しいコンソールで実行するよ
REM --------------------------------------------
start "" %~n1.exe
REM --------------------------------------------
REM 環境変数のローカル化終了
REM --------------------------------------------
endlocal
注釈
欠点はexeファイルが自動で消えないことかな?再利用できるしあって困るものでもないし自分は放置しています。
気になる人は各自修正をしたあとこっそり教えてください。
あとはソースファイルの実行場所によってはPermission deniedエラーが発生します。僕はなりました。
そんなときはbatファイルのcdの行をコメントアウトを削除して、お好みのディレクトリにしてください。
c言語以外でも似たような箇所をごにょごにょすると動くかもぞい!※未検証です