コードからコマンド実行する

最終更新日15 Sep 2017 00:45

C++11流

#include <cstdlib>
#include <fstream>
#include <iostream>
std::system("dir >test.txt");//dir ディレクトリを見るコマンドの結果をtest.txtに出力して流し込む
std::cout << std::ifstream("test.txt").rdbuf();//プログラム内で読み込む

C++11以前
#include <stdlib.h>
system("コマンド名");
#include <windows.h>
ShellExecute("コマンド名");

実行する外部コマンドの出力をプログラムで取得したい場合は、
pipe()とdup()を使って、fork()する方法もありますが、
popen()を使うとより簡単に書けます。

system関数から返ってくるintの値は、main関数からreturn された値です。
0なら正常終了、0以外なら異常終了です。

ファイルの移動

rename ファイル名 フォルダ名/ファイル名

コマンド実行した結果を得るには?

# coding: UTF-8
# 使い方
# .gitフォルダを.batファイルへドロップ
import os
import sys
import subprocess
 
proc = subprocess.Popen(["git", "diff","--name-only"], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
print("program output:"+str(out))

ファイルに書き込むコマンド

echo 内容 > ファイル名

catで確認しよう

cat ファイル名

コマンド実行結果を待つには

start /wait notepad.exe


[[tab python]]
[[/tab]]
commandlinetool filenames main


ファイル

サポートサイト Wikidot.com commandlinetoolfilenamesmain