17 件 見つかりました。

CHALOW Search - hiChangeLog ChangeLog INDEX

1 2 [ 次へ ]

UnixUtilsによって、UNIXでお馴染のコマンドをWindowsに一挙に導入できそう [Windows][コマンド]

dd,diff,du,grep,find,md5sumとかの定番UNIXコマンドの(cygwinではない)Windows移植版は各地で作成されている。でも1ケずつ導入するのは面倒だし、いざ使おうとなった段に「ああ、これは入れるの忘れてた」とかなると尋常じゃなくストレスが溜まる。
でもUnixUtilsには、usr/local/wbin に定番のコマンドがたんまり入っているので、上記の悩みからは解放されそうだ。全部はチェックしてないが、とりあえずmd5sumは動いた。

バッチファイルの戻り値 [コマンド]

Windows(DOS、コマンドプロンプト)で用いるバッチファイルの戻り値はどうなっているのか。
・DOSコマンドの戻り値は%errorlevel%に格納される。
・バッチファイルで例えば Exit/b 7 とすると、バッチ呼出し元の%errorlevel%に7が格納される。
・上記の指定が無い場合、バッチの終了によって%errorlevel%は変更を受けない。
ということを下記で学んだ:
バッチメモ(Hishidama's bat-file Memo)
DOS/V & Windows コマンド・プロンプト・リファレンス
DOSプロンプトで発行したコマンドの結果を調べる

オマケ
バッチ・ファイル中で日付をファイル名に使用する

ddの使い方 - CDの中身をバックアップしたい [コマンド]

T/O

dd if=\\.\e: of=c:\temp\disc1.iso bs=1M
http://www.chrysocome.net/dd

fetchmailは、POPのUIDLによって未受信・受信済を区別できる [コマンド]

maildropの.mailfilterの書き方を少しミスった(振り分け先ディレクトリ未作成)ため、fetchmailが「正常な受信できず」と判断してflushしなかったため、POPサーバーに未読メールを残してしまった、という状況。

最初は何が原因かわからなかったので、.mailfilterをいじりながら何度も受信しようと思った。まず1回受信して、それを全部消して.mailfilterを編集し、2回目を受信しようとしたが、"skipping message ..."と出て受信してくれなかった。skipとあるので、どこかに残っている「既読」の情報に邪魔されているんだろうなと思った。
一体どうやってそんな芸当ができるのかと思い調べると、POPにUIDLという値(の仕組み)があるようだ(参照:ラスト・ワン・ホップ プロトコル「POP3」)。この値をfetchmailが管理し、未受信か否かを判断している模様。
.fetchmailrcでuidlなるキーワードを追加することでこの機能が有効になっているようだ。私の.fetchmailrcはどっかからロクに中身を理解せず拝借したもので、uidlキーワードが含まれていた。で、UIDLの情報が.fetchidsなるファイルに書き込まれているそうだ。

実際に.fetchidsを消したら受信できた。

findした結果を指定ディレクトリにmvするためにxargsした [コマンド]

メモ。
ある条件にマッチしたファイルを他のディレクトリに移動したいという状況。
findしてxargsしてmvすれば良さそうだけど、mvは移動対象 ==> 移動先の順番で2つ引数をとるので、下記のようにせねばならない。(現在から14日前までのファイルを../hogeに移動する)

find . -mtime -14 ! -name "." | xargs mv --target-directory=../hoge/

MSYSのコンソールを便利に使う設定のまとめ [Windows][コマンド][シェル]

MinGW及びMSYSに書いたことの再整理。

まずどこでもいいので下記のバッチファイルを作成。mymsys_cmd.bat とかの名前をつける。

@echo off

REM remove '"'
set arg=%~1

REM replace '\' to '/'
set str=%arg:\=/%

REM remove ':'
set str=%str::=%

REM do not forget to add '/' at the beginning
C:\msys\1.0\bin\sh.exe -c "{ export INITIAL_DIR='/%str%'; exec /bin/sh --login; }"

環境変数 INITIAL_DIR を解釈するため、/etc/profile に下記を追加。
if [ "$INITIAL_DIR" == "" ]; then
  cd "$HOME"
else
  cd "$INITIAL_DIR"
fi

これで
C:\programs\mymsys_cmd.bat "$P"
とかやると指定したパス($P)でコンソールを開くことができた。

また、色の見栄えを良くするため、~/.profile に下記を追加するとよい。
export PS1='\[\033]0;\w\007
\033[1;32m\]\u@\h \[\033[1;33m\w\033[0m\]
$ '

MSYS1.0.10をインストールした [Windows][コマンド][シェル]

MSYS-1.0.10をダウンロードしてインストールした。post install process で以下のように言われた

When you install MinGW I suggest you install it to C:/mingw
(replace C: with the drive of your choice).  Then create an
/etc/fstab file with a line that has a value similar to:
C:/mingw /mingw
Press ENTER to continue

lsで日本語ファイル名を表示するには--show-control-chars [コマンド]

MSYS + コマンドプロンプトの組合せを気に入って使っている。

lsで日本語ファイルがうまく表示されなかったが、catにパイプしたりファイルにリダイレクトする限りではきちんと表示されていた。これは何故か?

hiroitoh@YEBO6 /C/hiroitoh/del
$ ls
japanese.txt  ???{??.txt

hiroitoh@YEBO6 /C/hiroitoh/del
$ ls | cat
japanese.txt
日本語.txt



端末に出力する際にlsが気を効かせて色々やっているが、これが裏目に出ているそうだ。--show-control-charsオプションでこれを無効にできるそうだ。
hiroitoh@YEBO6 /C/hiroitoh/del
$ ls --show-control-chars
japanese.txt  日本語.txt

コマンドプロンプトで簡単な条件分岐 [コマンド]

Visual Studio のビルドイベントであるディレクトリへのコピーを指定していたが、もしそのディレクトリが無かったらコマンドがエラーになるのでビルドに失敗することに気付いた(当り前だが)。

そこで以下のようなコマンドを追加した。「fugaディレクトリが無ければ作成」の意。mkdirは既に存在するディレクトリを指定するとエラーを返すみたいだ。

dir fuga || mkdir fuga

上のコマンドはエラーを返さないようだが、それは以下で確かめた。
(dir fuga || mkdir fuga) && echo OK

シンボリックリンク作成時、実体はフルパスで指定するのが良い [コマンド]

題名の通り。こうするとリンクファイルの位置によらずリンクが生きるようだ

ln -s `pwd`/myfile_real myfile_link

1 2 [ 次へ ]

ChangeLog INDEX
Powered by chalow