忍者ブログ

[PR]

2024年05月04日 ()
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

file rename script

2008年11月17日 (windows)

やりたいこと

音楽ファイルがたくさんある.こいつらをリネームしたい.が,ファイル数が多いので手作業でリネームしていくのは面倒だ.
環境はWindows,このためにわざわざWindowsのバッチ処理を勉強したくない.
処理したい条件は以下

  • トラック番号がファイルの最初に付いているファイルのトラック番号を削除
  • ファイル名の全ての空白文字を_(アンダースコア)に置換
  • '(シングルクォート)は全て削除
  • 例:03 Without You.mp3→Without_You.mp3
  • 1つのコマンド実行でフォルダ内の全てのファイルが処理される

フリーソフトで2〜3探したが,条件にマッチするものはないと判断.

Cygwin

そこでCygwinを使う.
構想としてはCygwinをインストールし,Linuxと互換性のあるShellを使ってShellScriptでリネームする.
まずはインストール

  1. http://www.cygwin.com/からダウンロードする
  2. ダウンロードしたsetup.exeはC直下にでも置いておく
  3. 全てデフォルトでインストールする

次にコマンドプロンプトから実行できるようにPathを通す

  1. [マイコンピュータ]を右クリック→[プロパティ]→[システムのプロパティ]ウィンドウが開く
  2. [詳細設定]タブ→[環境変数]ボタン→変数[PATH]にCygwinのbinディレクトリを入れる(デフォルトだとC:/cygwin/bin)
  3. ついでに作成するスクリプトを保存するフォルダにもPathを通しておく(今回はC:/cygwin/home/Administrator/bin)

Pathが通り今回使いそうなコマンドが使えることが可能なことを確認する

> mv
....
error messages
> sed
....
error messages
> echo aaa
aaa
> sh
sh-3.2$

問題なさそう.

Shell Script

お隣のLinuxでShellScriptを書く.

source(rs2n.sh)

#!/bin/sh

#replace space to underscore from file name

if [ $# -eq 0 ]; then
    echo "Usage: $0 FILES.."
    exit 1
fi
if [ ! -e $FILENAME ]; then
    echo "no such file or directory"
    exit 1
fi

for i in "$@"
do
    #echo $1
    #FILENAME=$1

    FILENAME=$i
    REPLACEFILENAME=`echo $FILENAME | sed \
    -e "s;';;g" \
    -e 's;^[0-9]-[0-9].\ ;;g' \
    -e 's;^[0-9].\ ;;g' \
    -e 's;,\ ;,;g' \
    -e 's;\ ;_;g'`
    mv "$FILENAME" $REPLACEFILENAME
done

実行する

% mkdir test
% cd test
% touch 01\ test.mp3
% touch 1-02\ test\ test.ogg
% touch 03\ test.wma
% ls | cat
01 test.mp3
03 test.wma
1-02 test test.ogg
% sh ../rs2n.sh *
% ls | cat
test.mp3
test.wma
test_test.ogg
% 

できた.

note

for文の$@は$0を除く全ての引数に展開される.
"$@"とすると展開されるときにダブルクォートで括られる.
(例:script aaa bbb→"aaa" "bbb")

mv "$FILENAME" $REPLACEFILENAME
"$FILENAME"のようにダブルクォートで括らないとスペースを含むファイル名の場合
2つのファイルと移動先のディレクトリと認識されてしまう.

cf.
% man test
% man sed

Windowsで実行

まずはLinuxで書いたシェルスクリプトを頑張ってWindowsのさっきPathを通したフォルダ(C:/cygwin/home/Administrator/bin)に入れる.
次にコマンドプロンプトを立ち上げる.例のファイルはTドライブにあるのでCygwinのBashを立ち上げるとcdできなくなるかもしれないのでコマンドプロンプトで・・
あとなぜかCygwinのBashだとmが打てない.

> cd /d t:
> cd music
> sh rs2n.sh *

note

Windowsのコマンドプロンプトではコマンドのオプションは/(スラッシュ)で指定するらしい.
cdでドライブを移動するときは/dオプションを使う.

できた.あとは細かい部分を手作業で直していくだけ.

PR

simple desktop

2008年11月11日 (windows)

はじめに・・・

WindowsXPのデスクトップをシンプルにしようという・・そんな計画.
動作も多少軽くなると思う.

デスクトップ

  • [コントロールパネル]→[画面]ダブルクリック
  • [テーマ]タブ→プルダウンメニュー[テーマ]から[Windowsクラシック]を選択
  • [デザイン]タブ→[詳細設定]ボタンをクリック→プルダウンメニュー[指定する部分]で各項目をそれぞれ設定→[OK]
  • [デスクトップ]タブ→[背景]→[なし]→プルダウンメニュー[色]→好きな色を選ぶ→[OK]

タスクバー

  • [コントロールパネル]→[タスクバーtスタートメニューのプロパティをダブルクリック
  • [タスクバー]タブを選択→[通知領域]→[時計を表示する][アクティブでないインジケータを隠す]→チェックを外す→[OK]
  • [タスクバー]を右クリック→[タスクバーを固定する]のチェックをはずす
  • [タスクバー]をドラッグし左に持って行き「スタート」の文字が隠れるくらいまでドラッグする
  • [タスクバー]を右クリック→[タスクバーを固定する]にチェックを入れる

言語バー

  • [コントロールパネル]→[地域と言語のオプション]ダブルクリック
  • [言語]タブ→[詳細]
  • [設定]タブ→基本設定→[言語バー]
  • 全てのチェックをはずす→[OK]→全て[OK]で閉じる

デスクトップアイコン

  • [マイコンピュータ]アイコン,[ネットワーク]アイコンは右クリック等で適当に削除
  • [ファイル名を指定して実行]→[regedit]と入力→[OK]
  • [HKEY_LOCAL_MACHINE]→[SOFTWARE]→[Microsoft]→[Windows]→[CurrentVersion]→[Explorer]→[Desktop]→[NameSpace]と辿る
  • [{645FF040-5081-101B-9F08-00AA002F954E}]を右クリック→[名前の変更]→前に適当に文字を付けてリネーム
  • デスクトップをアクティブにし[F5]キーを押す→ごみ箱が消える

最後に・・・

こんな感じ Simple is the Best

スクリーンショット

ms word 2003: 文書は保存されましたが,音声認識データを・・・

2008年10月11日 (windows)

謎のメッセージ

Microsoft Word 2003を使っていて保存時,自動保存時に以下のようなメッセージ

文書は保存されましたが,音声認識データを保存する十分な空き領域がないため,データは失われました.録音していないときは,必ずマイクをオフにし,ディスクで利用できる記憶域を確認してください.

これだけ見ると何をすれば良いのかわかりにくいメッセージ

解決策

言語データを埋め込まずに保存する設定にする

[メニュー]→[ツール]→[オプション]

[保存]タブ→[保存オプション]→[言語データを埋め込む]のチェックを外す

[オプション]ダイアログ→[OK]

 | HOME |