このサイトのはてなブックマーク数の合計

www を検索 sarabande.info を検索
トップページに戻る

コマンドプロンプト

ショートカットの作成

起動時にユーザーのホームディレクトリから始まるがいつも指定したディレクトリから起動させたいのであれば、次のようなbatファイルを作成しスタートメニューにドラッグドロップする。

@echo off
cd c:\downloads
cmd.exe

利用できるフォントの追加

レジストリエディタを起動させるために、「スタート」→「ファイル名を指定して実行」→「regedit」を入力して「OK」をクリックする。 レジストリエディタの左側に表示されている

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

を開き、右クリックで「新規」→「文字列」で「932.」を作成し、右クリック→「修正」から追加したいフォント名を記入する。 記入を終えたらレジストリエディタを終了させてOSを再起動させる。OSを再起動させた後にコマンドプロンプトを起動させて ウィンドウの左上部分をクリック→「規定値」→「フォント」で先ほどレジストリエディタで指定したフォントが追加されているか確認をする。

参考

日本語入力をする

「Alt」+「半角/全角」を入力する。日本語入力モードをオフにするには「半角/全角」を入力する。

utf-8のコードページに変更する

コマンドプロンプトで表示する文字コードをutf-8に変更するにはコードページを変更する。ただし、日本語入力ができずMySQLモニタ上では日本語を正常に表示できなかった。

chcp 65001

現在のコードページを表示するには

chcp

デフォルトのShift-JISに変更するには

chcp 932

サポートされているコードページを調べるには?

Windows XPの場合「コントロールパネル」→「地域と言語オプション」の「詳細設定」で「コードページ変換テーブル」にシステムに導入されている一覧が表示される。

環境変数

カレントディレクトリを環境変数に設定する

Apache FOPのfop.batで見つけたやり方。

@echo off
if "%OS%"=="Windows_NT" set LOCAL_HOME=%~dp0
echo %LOCAL_HOME%

ツール・ライブラリ

Linxの基本コマンドツールを導入する

GnuWin32を導入する。

PHP

コマンドプロンプト上で日本語表示する

スクリプトファイルはUTF-8で保存する。

 
//php.iniで設定されていない場合
#mb_internal_encoding("UTF-8");
mb_http_output('SJIS-win');
ob_start('mb_output_handler');
echo "日本語";
 
[php]
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "SJIS");
ob_start("ob_iconv_handler");
echo "日本語";
 

PHP6ではunicode関数がデフォルトで利用できる。

 
$str = "日本語";
echo unicode_encode($str, "SJIS");
 

テキストファイルからテキストを読み込む場合は一旦バイナリ文字列からユニコード文字列に変換する必要がある。サポートされるエンコードは「SJIS」・「CP932」・「UTF-8」・「eucJP」など。http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/ より調べることができる。

 
$str = file_get_contents("test.txt");
$str = unicode_decode($str, "UTF-8"); //UTF-8でテキストを保存している場合
echo unicode_encode($str, "SJIS");
 

UNIXコマンドの結果を表示する

日本語の内容を表示できるようにする

 
file_put_contents('test.txt', '日本語');
$txt = `cat test.txt`;
$txt = mb_convert_encoding($txt, 'SJIS-win', 'UTF-8');
echo $txt;
 

コマンドラインから引数を読み取るには?

$argvもしくは$_SERVER['argv']を使う。前者はregister_argc_argvディレクティブがOnのときに利用できる。Zend FrameworkのZend_Console_Getoptは後者を利用している。

http://www.php.net/manual/ja/features.commandline.php

引数をPHPに渡す

Windows XP(NT)の場合

test.bat(左右のどちらか)

@php -d html_errors=off -d open_basedir= -q "test.php" %*

@echo off
php -d html_errors=off -d open_basedir= -q "test.php" %*

Windows 95, 98, MEの場合

php -d html_errors=off -d open_basedir= -q "test.php" %1 %2 %3 %4 %5 %6 %7 %8 %9

test.php

 
print_r($argv);
 

実行結果

>php test.php 1 2 3

Array
(
    [0] => test.php
    [1] => 1
    [2] => 2
    [3] => 3
)

オプションごとの場合分け

 
if (isset($argv[1]) or $argv[1]==="--help" or $argv[1]==="-h"){
  echo "help";
}
 

コマンドプロンプト上でスクリプトを実行しているか判定する

 
// if (array($_SERVER[SESSIONNAME], $_SERVER[OS]) == array('Console', 'Windows_NT'))も可
if ($_SERVER[SESSIONNAME] == 'Console' && $_SERVER[OS] == 'Windows_NT')
{
  echo 'Windows';
}
 

コマンドライン用のライブラリ

異なるバージョンのPHPを併用する

例えば、PHP5とPHP6をコマンドラインで併用する場合、PHP5は「php」、PHP6は「php6」で利用できるようにするにはPHP6用のバッチファイルを用意する。

@ C:\php6\php.exe %*
トップページに戻る