起動時にユーザーのホームディレクトリから始まるがいつも指定したディレクトリから起動させたいのであれば、次のような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に変更するにはコードページを変更する。ただし、日本語入力ができず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%
GnuWin32を導入する。
スクリプトファイルは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");
日本語の内容を表示できるようにする
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
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'; }
例えば、PHP5とPHP6をコマンドラインで併用する場合、PHP5は「php」、PHP6は「php6」で利用できるようにするにはPHP6用のバッチファイルを用意する。
@ C:\php6\php.exe %*
トップページに戻る