17 件 見つかりました。
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プロンプトで発行したコマンドの結果を調べる
オマケ
バッチ・ファイル中で日付をファイル名に使用する
T/O
dd if=\\.\e: of=c:\temp\disc1.iso bs=1Mhttp://www.chrysocome.net/dd
maildropの.mailfilterの書き方を少しミスった(振り分け先ディレクトリ未作成)ため、fetchmailが「正常な受信できず」と判断してflushしなかったため、POPサーバーに未読メールを残してしまった、という状況。
最初は何が原因かわからなかったので、.mailfilterをいじりながら何度も受信しようと思った。まず1回受信して、それを全部消して.mailfilterを編集し、2回目を受信しようとしたが、"skipping message ..."と出て受信してくれなかった。skipとあるので、どこかに残っている「既読」の情報に邪魔されているんだろうなと思った。
一体どうやってそんな芸当ができるのかと思い調べると、POPにUIDLという値(の仕組み)があるようだ(参照:ラスト・ワン・ホップ プロトコル「POP3」)。この値をfetchmailが管理し、未受信か否かを判断している模様。
.fetchmailrcでuidlなるキーワードを追加することでこの機能が有効になっているようだ。私の.fetchmailrcはどっかからロクに中身を理解せず拝借したもので、uidlキーワードが含まれていた。で、UIDLの情報が.fetchidsなるファイルに書き込まれているそうだ。
実際に.fetchidsを消したら受信できた。
メモ。
ある条件にマッチしたファイルを他のディレクトリに移動したいという状況。
findしてxargsしてmvすれば良さそうだけど、mvは移動対象 ==> 移動先の順番で2つ引数をとるので、下記のようにせねばならない。(現在から14日前までのファイルを../hogeに移動する)
find . -mtime -14 ! -name "." | xargs mv --target-directory=../hoge/
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; }"
if [ "$INITIAL_DIR" == "" ]; then cd "$HOME" else cd "$INITIAL_DIR" fi
C:\programs\mymsys_cmd.bat "$P"とかやると指定したパス($P)でコンソールを開くことができた。
export PS1='\[\033]0;\w\007 \033[1;32m\]\u@\h \[\033[1;33m\w\033[0m\] $ '
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
MSYS + コマンドプロンプトの組合せを気に入って使っている。
lsで日本語ファイルがうまく表示されなかったが、catにパイプしたりファイルにリダイレクトする限りではきちんと表示されていた。これは何故か?
hiroitoh@YEBO6 /C/hiroitoh/del $ ls japanese.txt ???{??.txt hiroitoh@YEBO6 /C/hiroitoh/del $ ls | cat japanese.txt 日本語.txt
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