青の部隊 505小隊 ULZ

スクリプトとかの小ネタ

最終更新:

Bot(ページ名リンク)

- view
だれでも歓迎! 編集
非常に素朴なネタを書いてみる。
Cygwinのbash使うほどでもないものはDOSコマンド、
ある程度よりも面倒なのはbashスクリプトで書いてます。


ファイル名末尾に日付を入れてコピー


> backup_date-time filename.ext comment

こんな感じにすると、
filename_090205-1926_comment.ext
みたいなファイルを作ってくれる。

てなわけで、スクリプトの内容おば。
プログラム的には単純だけど、
慣れてないと知らないような変なコマンドがちらほら。

@echo off

:Argument_Check
if "%1"=="" goto Error


:Separate_InputPath
set inpath=%1
set name=%~n1
set ext=%~x1


:Set_Comment
set cmt=
if not "%2"=="" set cmt=_%2


:Generate_OutputPath
set outdate=%date:/=%
set outdate=%outdate:~2%
set outtime=%time:~0,2%%time:~3,2%
if "%outtime:~0,1%"==" " set outtime=0%outtime:~1%
set outpath=%name%_%outdate%-%outtime%%cmt%%ext%


:Do_Output
echo "%inpath%" を "%outpath%" に出力します。
copy %inpath% %outpath%
attrib +r %outpath%
goto End


:Error
echo 'error!'


:END

あとは C:\bin でも何でもお好きなところにパスを通せばよいよ。
作業中の適当なとこで、コマンドプロンプトで↑押してEnterすればよい。

某XTH用にこれを改造して、Zip圧縮できるようにしてたり。
ゲム中にバッチファイルダブルクリックでウマー。
30MBあったセーブファイルが300kbになるとか・・・
ファイルサイズ固定&生バイナリはデバッグ楽だろうけどさー。
もう少しがんばろうぜXthスタッフさん。


Windows上でダブルクリックでBashスクリプトを走らせるためのDOSバッチ


テキストファイルをCygterm+vimで編集
が参考になった。cygpathが素敵だw

@echo off

:: Windows形式パス名をcygwin形式パス名に変換
for /f "usebackq tokens=*" %%i in (`C:\cygwin\bin\cygpath %1`) do @set arg=%%i

:: 変換した引数をbashに渡す
bash -ic "%arg%"

これと *.sh とかを関連付けておくと幸せになれるかもよ。

追記。
argにダブルクォーテーションつけないと引数読んでくれなかったので修正。
なんとなく分かるけど、なんでだろ。


指定したディレクトリを日付付きZipファイルにバックアップ


ファイルが発掘できたので晒してみる。
日付文字列作成ルーチンとか自分的にはお気に入り。
前述のDOSバッチとか使うとWindowsでも利用できるはず。

#!/bin/bash


# Show info
echo '*** 圧縮してバックアップ ***'
echo '実行条件および結果をを日付付きでバックアップします。'
echo '引数でバックアップ先のファイル名にコメント文字列を追加します'
echo;


# Argument_Check
if [ $# = 0 ]
then 
	echo '引数が足りません'
	exit
fi

if [ ! -d "$1" ]
then
	echo '指定されたパスがディレクトリではありません'
	exit
fi


# 変数の準備
date=`date +%y%m%d-%H%M`
inpath=$1
comment=''


# Analyze Options
while getopts i:t:v:c: OPT
do
  case $OPT in
    "c" ) FLG_C="TRUE" ; comment="_$OPTARG" ;;    
  esac
done
outpath=$inpath'_'$date$comment


# Show output-path 
echo \"$inpath\" を \"$outpath\" にバックアップします。
echo;


# バックアップ開始
zip -ry9q $outpath'.zip' \
$inpath


連番画像のmpeg化


explore2fsでubuntuの中を掘ってたら出てきた。

#!/bin/sh

##                                    ##
##      連番静止画を動画に変換        ##
##                                    ##

# 画像フォーマット変換
#mogrify -format bmp *.tiff

# ファイル名置換
#rename 's/^image.00/image/' *.bmp

# mpegエンコードの実行
#ffmpeg -i image.%06d.tiff -f mp4 -vtag mp4v -qscale 1 -r 10 dreamm_q10r10.mp4
ffmpeg -i image.%06d.tiff -f mp4 -vtag mp4v -qscale 1 -r 1 dreamm_q10r01.mp4
#ffmpeg -y -i image.%06d.tiff -f flv -vcodec flv -r 25 -b 900 -s qv00 -ab 64k output.flv -ar 441
#ffmpeg -i image.%06d.tiff -f flv -vcodec flv -r 10 -b 1800 -s svga -ab 64k output.flv -ar 441
#ffmpeg -i image.%06d.tiff -vcodec libx264 -r 10 -b 2000 -s svga output.mp4

mogrifyでBMPに変換→無駄に長い名前を短く→ffmpegって流れだったんだが、
ffmpegはtiffを理解してくれるので必要なしw
でもTMPEGEnc使うときに必要なのでコメントアウツして残す。

タグ:

+ タグ編集
  • タグ:
ウィキ募集バナー