LoginSignup
0
4

More than 5 years have passed since last update.

[Visual Studio Code]コンパイルしたexeファイルをコンソールから実行したい

Posted at

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言語以外でも似たような箇所をごにょごにょすると動くかもぞい!※未検証です

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4