ブログを作る※無料・簡単アフィリ    ブログトップ | 楽天市場
096352 ランダム
《コマンドライン活用術 No.4》遅… (パソコン・家電)楽天ブログ 【ケータイで見る】 【ログイン】
kiraruノートの《切れ端》
ホーム 日記 プロフィール オークション 掲示板 ブックマーク お買い物一覧

PR

カレンダー

2011年11月
  12345
6789101112
13141516171819
20212223242526
27282930   
<一覧へ今月次の月>

キーワードサーチ

カテゴリ

バックナンバー

モバイル

m ケータイに
このブログの
URLを送信!

 

書き留めておきたき事

<< 前へ次へ >>一覧コメントを書く

2005年08月13日 楽天プロフィール Add to Google XML

 《コマンドライン活用術 No.4》遅延環境変数は使いにくいかも...
[ コマンドライン ]    

No.1~3までのコマンドスクリプトは遅延環境変数を使用して
(参照する場合、%変数名%ではなく !変数名!
スクリプトを展開して実行していましたが、問題があることがわかりました。

それは、格納する文字列にエクスクラメーションマーク"!"があると
それが削除されてしまうというものです。
ファイル名に"SHUFFLE!~"というもので実行したときに判明しました。

まあ考えてみれば変数の参照に"!"マークを使うのだから仕方がないのかも
しれませんが、これではファイル名に"!"を使えなくなってしまします。
この問題は遅延環境変数が有効になっている間は、%変数名%を使っている
個所でも同じことが言えます。

誰かこの問題を避ける有効な手段を知りませんか?

と、グチだけ言ってても始まらないので、遅延環境変数を使わないように
以前のスクリプトを書き換えてみました。


--- AACenc.cmd ---
@echo off
setlocal
rem *** dstdirに出力先を設定する。設定しない場合はsrcと同じフォルダとなる ***
rem set dstdir=%temp%
rem ----------------------------
set dstdir=z:
set default=-vbr normal
set aacencdir=%SystemDrive%\bin\sound\Nero Frontends
rem *************************************************************************

if "%~1" == "" goto usage

set n=1
if "%~2" neq "" (set p1=%~1& shift& set /a n+=1)
if "%~2" neq "" (set p2=%~1& shift& set /a n+=1)
if "%~2" neq "" (set p3=%~1& shift& set /a n+=1)
if "%~2" neq "" (set p4=%~1& shift& set /a n+=1)
if "%~2" neq "" (set p5=%~1& shift& set /a n+=1)
:param_skip
if "%~2" neq "" (shift& set /a n+=1& goto param_skip)

set vbr=
set apend=
if %n% == 1 (
set vbr=%default%
) else (
if "%p1%" equ "160" (set vbr=-cbr %p1%)
if "%p1%" equ "128" (set vbr=-cbr %p1%)
)
if "%vbr%" == "" (
set vbr=-vbr %p1%
)
if "%vbr%" neq "%default%" (set apend=_%p1%)
set opt=%p2% %p3% %p4% %p5%

set src=%~1
if "%~x1" == "" (set src=%~dpn1.wav)
if not defined dstdir (set dstdir=%~dp1)
if %dstdir:~-1% neq \ (set dstdir=%dstdir%\)
set dst=%dstdir%%~n1%apend%.mp4

:execute
set path=%CommonProgramFiles%\Ahead\AudioPlugins;%path%
pushd %aacencdir%
echo on
aacenc32 %vbr% %opt% "%src%" "%dst%"
@echo off
popd
goto end

:usage
echo.
echo usage : %0 [vbr [opt-list...]] wavfile
echo vbr : 128 ^| 160
echo ^| internet ^| streaming ^| normal
echo ^| extream ^| audiophile ^| transcoding
echo (default normal)
echo opt-list : others parameter-list
echo wavfile : [drv:\][path]filename[.ext]
echo.

:end
pause
endlocal



--- vfr.cmd ---
@echo off
setlocal
rem *******************************************
set vfrpath=%SystemDrive%\bin\bin\vfrout
set auoenc="%SystemDrive%\bin\bin\auoenc.exe"
set dstdir=
set cfg=
set targetcmd=source
rem *******************************************

if "%~1" == "" goto :eof

set p1=
set p2=
set p3=
set p4=
set p5=

if "%~2" neq "" (set cfg=%~1& shift)
if "%~2" neq "" (set dstdir=%~1& shift)
:skip_param
if "%~2" neq "" (shift& goto skip_param)

for /f "delims=" %%i in ('findstr /i "^[^#]*%targetcmd%" %1') do (
set src=%%i
)
set src=%src:"=%
for /f "tokens=1-5 delims=,()" %%i in ("%src%") do (
set src1=%%~i
set src2=%%~j
set src3=%%~k
set src4=%%~l
set src5=%%~m
)

set n=0
if defined src5 (set /a n+=1)
if defined src4 (set /a n+=1)
if defined src3 (set /a n+=1)
if defined src2 (set /a n+=1)
if defined src1 (set /a n+=1)

if %n% equ 0 goto nohit
if "%src1:.avi=%" neq "%src1%" (set src=%src1%& goto hit)
if "%src1:.d2v=%" neq "%src1%" (set src=%src1%& goto hit)
if "%src1:.vcf=%" neq "%src1%" (set src=%src1%& goto hit)

if %n% equ 1 goto nohit
if "%src2:.avi=%" neq "%src2%" (set src=%src2%& goto hit)
if "%src2:.d2v=%" neq "%src2%" (set src=%src2%& goto hit)
if "%src2:.vcf=%" neq "%src2%" (set src=%src2%& goto hit)

if %n% equ 2 goto nohit
if "%src3:.avi=%" neq "%src3%" (set src=%src3%& goto hit)
if "%src3:.d2v=%" neq "%src3%" (set src=%src3%& goto hit)
if "%src3:.vcf=%" neq "%src3%" (set src=%src3%& goto hit)

if %n% equ 3 goto nohit
if "%src4:.avi=%" neq "%src4%" (set src=%src4%& goto hit)
if "%src4:.d2v=%" neq "%src4%" (set src=%src4%& goto hit)
if "%src4:.vcf=%" neq "%src4%" (set src=%src4%& goto hit)

if %n% equ 4 goto nohit
if "%src5:.avi=%" neq "%src5%" (set src=%src5%& goto hit)
if "%src5:.d2v=%" neq "%src5%" (set src=%src5%& goto hit)
if "%src5:.vcf=%" neq "%src5%" (set src=%src5%& goto hit)

:nohit
echo %src1%
echo %src2%
echo %src3%
echo %src4%
echo %src5%
echo ファイル名を特定できませんでした
goto end

:hit
set src=%src:"=%
:delspace_loop
if "%src:~0,1%" == " " (set src=%src:~1%& goto delspace_loop)

for /f "delims=" %%i in ("%src%") do (
if not defined dstdir (set dstdir=%%~dpi)
set dst=%%~ni.avi
)
set dstdir=%dstdir:"=%
if %dstdir:~-1% neq \ (set dstdir=%dstdir%\)
if not exist %dstdir% (echo 出力先フォルダが存在しません^("%dstdir%"^)& goto end)
set dst=%dstdir%%dst%

if exist "%dst%" (
echo 出力ファイル"%dst%"が既に存在します
set /p yn=上書きしますか?^(Y/N^)
) else (
goto execute
)
if /i "%yn%" == "y" (goto execute)
goto :eof

:execute
@echo on
%auoenc% "%vfrpath%\exavi_vfr.auo" "%vfrpath%\vfr%cfg%.cfg" "%1" "%dst%" 0
@echo off

:end
pause
endlocal



最終更新日  2005年08月13日 09時49分07秒
コメント(0) | コメントを書く





■コメント

お名前
タイトル
メッセージ
・メッセージ本文は全角で800文字までです。
・書き込みに際しては楽天ブログ規約の禁止事項や免責事項をご確認ください
・ページの設定によっては、プルダウンで「顔選択」を行っても、アイコンが表示されません。ご了承ください。


<< 前へ次へ >>一覧コメントを書く一番上に戻る


Powered By 楽天ブログは国内最大級の無料ブログサービスです。楽天・Infoseekと連動した豊富なコンテンツや簡単アフィリエイト機能、フォトアルバムも使えます。デザインも豊富・簡単カスタマイズが可能!

Copyright (c) 1997-2012 Rakuten, Inc. All Rights Reserved.