おれのメモ帳_φ(-ω-`*)メモメモ

バッチファイルのパラメータのメモ

バッチファイルのカレントディレクトリ取得など。

バッチファイルの中身(test.bat)。

@echo off
echo %0
echo %~d0
echo %~p0
echo %~n0
echo %~x0
echo %~dp0
echo %~pn0
echo %~dpn0
echo %~dpnx0
意味

0がバッチファイル自身の情報。
1、2、...とすると第1パラメータ、第2パラメータ、...に対応。
~d: ドライブ
~p: パス
~n: ファイル名
~x: 拡張子

実行する。

C:\Users\username>test.bat

結果。

test.bat
C:
\Users\username\
test
.bat
C:\Users\username\
\Users\username\test
C:\Users\username\test
C:\Users\username\test.bat

新しく覚えた Git コマンド

git 管理下にあるファイルをあえて無視する

主に設定ファイル等、gitで管理しておきたいけど、ローカル環境用に変更する必要があるものを指定する。

$ git update-index --skip-worktree [ファイルパス]

以下の無視方法だと、git-pull したときに リポジトリのファイルでローカルが置き換わってしまい、ローカル環境の設定ファイルが跡形もなくなってしまうので注意。

$ git update-index --assume-unchanged [ファイルパス]

ずっと無視なら最初の方法で、一時的に無視しておきたいなら2番目の方法で。
参考サイト参照。

【利用例】
プロジェクト内の空フォルダ全部に.gitkeepを配置、コミットした後、.gitkeepを無視したい場合。
以下で空フォルダに.gitkeepを作成したあと、コミットし、

$ find . -type d -name .git -prune -o -type d -empty -exec touch {}/.gitkeep \;

以下で、.gitkeepの変更を無視する。

$ find . -type f -name .gitkeep -exec git update-index --skip-worktree {} \;

キャッシュフォルダなどの場合、キャッシュクリアすると.gitkeepも含めて全部消えてしまうので、変更差分として出てきて困る、というところで利用。

git 管理下のファイルを一覧表示
$ git ls-files

XAMPP 環境への Movable Type インストールでハマったメモ

参考サイトの通りやれば大抵うまくいくと思われるが、自分の環境だとダメだったのでメモ。
問題はPerlのパス。

/usr/bin/perl でアクセスできるように、以下でシンボリックリンクを作成するが、

mklink /j c:\usr c:\Perl

うまくいかない(mt-check.cgiが表示されない)。

原因は、XAMPP 環境を Dドライブ側に作成していたことらしい。
で、同じドライブに Perl がないと見えないようなので、以下のようにリンクを作り直した。

mklink /j D:\usr c:\Perl


【追記】
その後、参考サイトを見ながら、DBD::mysqlをppmから入れて、mt-check.cgi にアクセスしたら、チェック画面は無事表示されたが以下のエラー。

サーバーに DBD::mysqlか、DBD::mysqlの動作に必要な他のモジュールがインストールされていません。 DBD::mysqlのインストールはインストールマニュアルに沿って行ってください。 
Unable to get DBI state function. DBI not loaded. at D:/usr/lib/DynaLoader.pm line 214, <DATA> line 1662.
Compilation failed in require at (eval 124) line 1, <DATA> line 1662.
BEGIN failed--compilation aborted at (eval 124) line 1, <DATA> line 1662.

入れたってば。
ここからググりまくっても結局分からず。

で、ActivePerl自体が大分前に入れたものだったので、念のため ppm から DBI のバージョンを見てみると、新しいバージョンが出ていた。
試しに DBI の新しいのをインストールしてみたら、すんなりOK! DBI と DBD::mysql のバージョン不整合?のようなものだったぽい。

あー、時間食ったわー。ActivePerl入れなおせば早かったかも。

Windows msysgit 環境に Git-flow を入れた

以下を参考にして、Windows の msysgit 環境に git-flow を入れた。

まず util-linux-ng for Windows から Binaries の Zip と Dependencies の Zip をダウンロードして解凍。

Binaries/bin から getopt.exe を、Dependencies/bin から libintl3.dll を取り出して、Gitのインストールディレクトリ/bin に入れる(libintl3.dll は wget を入れるときに入れてた)。

自分は PortableGit 環境なので、以下な感じのとこに入れた。

C:\Users\username\Dropbox\Tools\Develop\Git\bin\

その後、適当なフォルダで以下を実行(GitBashで実行)。

$ git clone --recursive git://github.com/nvie/gitflow.git
Cloning into 'gitflow'...
remote: Counting objects: 1407, done.
remote: Compressing objects: 100% (591/591), done.
rRemote: Total 1407 (delta 886), reused 1300 (delta 801)
Receiving objects: 100% (1407/1407), 367.08 KiB | 294 KiB/s, done.
Resolving deltas: 100% (886/886), done.
Submodule 'shFlags' (git://github.com/nvie/shFlags.git) registered for path 'shFlags'
Cloning into 'shFlags'...
remote: Counting objects: 454, done.
remote: Compressing objects: 100% (56/56), done.
Receiving objects:  66% (300/454), 60remote: Total 454 (delta 389), reused 453 (delta 388)
Receiving objects: 100% (454/454), 101.23 KiB | 103 KiB/s, done.
Resolving deltas: 100% (389/389), done.
Submodule path 'shFlags': checked out '2fb06af13de884e9680f14a00c82e52a67c867f1'


次にコマンドプロンプト(管理者権限)で、cloneしたフォルダに移動して以下を実行。

D:\Repos\gitflow> contrib\msysgit-install.cmd "C:\Users\username\Dropbox\Tools\Develop\Git"
Installing gitflow into "C:\Users\username\Dropbox\Tools\Develop\Git"...
getopt.exe... Found
Copying files...
D:\Repos\gitflow\git-flow -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow
1 個のファイルをコピーしました
D:\Repos\gitflow\git-flow -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow
D:\Repos\gitflow\git-flow-feature -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow-feature
D:\Repos\gitflow\git-flow-hotfix -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow-hotfix
D:\Repos\gitflow\git-flow-init -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow-init
D:\Repos\gitflow\git-flow-release -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow-release
D:\Repos\gitflow\git-flow-support -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow-support
D:\Repos\gitflow\git-flow-version -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\git-flow-version
7 個のファイルをコピーしました
D:\Repos\gitflow\gitflow-common -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\gitflow-common
D:\Repos\gitflow\gitflow-shFlags -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\gitflow-shFlags
2 個のファイルをコピーしました
D:\Repos\gitflow\shFlags\src\shflags -> C:\Users\username\Dropbox\Tools\Develop\Git\bin\gitflow-shFlags
1 個のファイルをコピーしました


完了。

$ git flow
usage: git flow <subcommand>

Available subcommands are:
   init      Initialize a new git repo with support for the branching model.
   feature   Manage your feature branches.
   release   Manage your release branches.
   hotfix    Manage your hotfix branches.
   support   Manage your support branches.
   version   Shows version information.

Try 'git flow <subcommand> help' for details.

Adminer 使えばいいのに!

phpMyAdmin が重いので、ローカル環境ではここしばらく Adminer しか使ってない。
これだけで MySQLPostgreSQL も行けるので便利だし、何より軽い。

Works with MySQL, PostgreSQL, SQLite, MS SQL, Oracle - Improve your driver

XAMPP で環境を作ったら、サイトから php ファイルを一個落としてきて、phpMyAdmin のフォルダにぽいっと入れる(入れる先は別にどこでもいいけど)。
あとは http://localhost/phpmyadmin/adminer-3.6.3.php とかで見ればOK。

たまに困るのは、PostgreSQL でシーケンスが見られないこと。
見かたを知らないだけの可能性は高いが--;