ラベル ランダム再生 の投稿を表示しています。 すべての投稿を表示
ラベル ランダム再生 の投稿を表示しています。 すべての投稿を表示

2017年7月16日日曜日

HDDの大量ファイルを利用はするが管理はしない。ファイル活用支援バッチ FileLinkMaker ver.1.5.170715

1.上記はINIファイルのみの起動直後の画面です。思うところがあって項目の順番と名前を変えました。 これは前述の【今更知ってしまった】ショートカットで再生リストを作ってプレイヤーに再生させる方法【Windows10 の再生プレイヤー( Windows Media Player or 映画&テレビ ) 限定かな?】の影響が多分にありまして、ファイルを集めて見るだけなら、エクスプローラから写真スライドビューや動画リスト再生しちまえば、複雑なアプリ設定とかする必要ないよね(''Д'') と言う訳で、アプリの起動は名前を「起動アプリ」と変わり末尾に移動しました。もちろん設定すれば以前と同様には使えます。

 2.項目の順番が変わった弊害として、以前のユーザ設定を読み込むと設定の指定がずれます。すんませんが手動で直してくださいorz

 3.「1.出力パス」と「1.検索パス」は名前の通り、PATH設定が必要な訳ですが、設定ラベルを記入しておくと、実行時にラベルに応じたPATHを展開します。もちろんさらにフォルダ名をつける事も出来ます。末尾には必ず\を付けてください。
 FILELINKBAT\  FileLinkMaker1.batの設置PATH。ここは検索対象外。
 USERPROFILE\  ログインユーザPATH
ex.
 FILELINKBAT\MMD\
 USERPROFILE\Picture\

 4.今回は値が無い場合は初期値を設定し、何処かにファイルを置いて管理者権限で動かせば即実行可能となるようにしています。

 5.検索条件を見直しました。画面で"/a-s-h-i"とありますが、""隠し" "システム" "非インデックス" は検索されないようにしています。実はこの中で"非インデックス"が結構重要な項目になってまして、このバージョンからシンボリックリンクの属性に"非インデックス"を付与してます。 "出力パスは検索条件から除外する"と合わせて、出力場所が検索範囲に入ってしまう場合の処理の高速化につなげています。
 ・FILELINKBAT 以下は無条件に検索対象外
 ・USERPROFILE\AppData 以下は無条件に検索対象外

 6. k[Enter]で設定を編集できないようにします。ただし□編集不可は出来ません。
 〇 編集可能
 ◇ 編集ロック中
 □編集不可 ※"4.検索範囲" "5.名前付順"が該当
 "保存 s" すると、"〇編集可能"項目のユーザ設定は FilelinkMaker.txtに保存。 それ以外はFilelinkMaker.iniに保存します。画面の設定では1.~3.はFilelinkMaker.txtに保存。4.~6.はFilelinkMaker.iniに保存となります。

 7. 検索条件は見出しのみ設定の場合、検索条件にもなるようにしました。ぶっちゃけ見出しと設定とを分けてると設定がメンドクサイ場合が多かったというのがあります。
上記例だと、"FILELINKBAT\映画 劇場 洋画 邦画" フォルダに"映画 劇場 洋画 邦画"で検索したシンボリックリンクが出来ます。

 8.「見出しを検索条件にする」事ができるようになったので、もう一つ進んで「項目設定で不正な値を検索条件として追加する」を追加しました。これでいちいち検索条件を設定してからリンクを作成するのでなく、検索文字列入力後に即リンク作成出来るようになりました。

 9.起動アプリ 該当ない場合、Explorerが立ち上がります。

 今までの機能はこちら参照っと、、、ドキュメントが分散してるなー、情報も古くなってるし、機能更新はここまでにしてドキュメントを更新して一つにする必要あるか。

HDDの大量ファイルを利用はするが管理はしない。ファイル活用支援バッチ FileLinkMaker.bat 機能説明(ランダム再生弐型追加)







追記 作った本人も忘れていた検索制限メモ
1.ネットワークドライブを検索する場合は、ULC(絶対パス)表記にしないと正しく動作しません。

追加調査
dosコマンドでパスやファイル名に特殊記号34個が含まれてた場合の挙動調査※先頭:半角スペース
 !"#$%&'()=~|`{+*}<>?_-^\@[;:],./\
"は除外

フォルダ作成 作成結果  検索パス保存 実行結果
md "c:\·test\" 〇c:\·test\ ×セーブ時に全角・に強制変換
md "c:\ test\" 〇c:\ test\ 〇c:\ test\ □短名出力
md "c:\!test\" 〇c:\!test\ ×セーブ時に!消える
md "c:\#test\" 〇c:\#test\ 〇c:\#test\ 〇
md "c:\$test\" 〇c:\$test\ 〇c:\$test\ 〇
md "c:\%test\" 〇c:\%test\ 〇c:\%test\ △出力されず
md "c:\&test\" 〇c:\&test\ 〇c:\&test\ 〇
md "c:\'test\" 〇c:\'test\ 〇c:\'test\ 〇
md "c:\(test\" 〇c:\(test\ 〇c:\(test\ 〇
md "c:\)test\" 〇c:\)test\ 〇c:\)test\ ×強制終了
md "c:\=test\" 〇c:\=test\ 〇c:\=test\ □短名出力
md "c:\~test\" 〇c:\~test\ 〇c:\~test\ 〇
md "c:\|test\" ×
md "c:\`test\" 〇c:\`test\ 〇c:\`test\ 〇
md "c:\{test\" 〇c:\{test\ 〇c:\{test\ 〇
md "c:\+test\" 〇c:\+test\ 〇c:\+test\ □短名出力
md "c:\*test\" ×
md "c:\}test\" 〇c:\}test\ 〇c:\}test\ 〇
md "c:\<test\" ×
md "c:\>test\" ×
md "c:\?test\" ×
md "c:\_test\" 〇c:\_test\ 〇c:\_test\ 〇
md "c:\-test\" 〇c:\-test\ 〇c:\-test\ 〇
md "c:\^test\" 〇c:\^test\ 〇c:\^test\ △出力されず
md "c:\@test\" 〇c:\@test\ 〇c:\@test\ 〇
md "c:\[test\" 〇c:\[test\ 〇c:\[test\ □短名出力
md "c:\;test\" 〇c:\;test\ 〇c:\;test\ ×処理停止
md "c:\:test\" ×
md "c:\]test\" 〇c:\]test\ 〇c:\]test\ □短名出力
md "c:\,test\" 〇c:\,test\ 〇c:\,test\ □短名出力
md "c:\.test\" 〇c:\.test\ 〇c:\.test\ □短名出力
md "c:\/test\" ×c:\test ※コマンドは実行できるが/は消える
md "c:\\test\" ×c:\test ※コマンドは実行できるが\は消える

以上より、
使える記号12
#$&'(~`{}_-@
一応使える記号7。※先頭半角スペース
 =+[],.
※エラー使うな記号15
"·!%)|*<>?^;:/¥

2016年11月8日火曜日

Winパソコンで動画をランダム(シャッフル)再生しよう! (MPC-HC再生サポート のフロントエンドbatファイルの作成) ※修正個所アリ

 お久しぶりです。
 最近は仕事で気力とネタが尽きてまして、ブログを一顧だにせず生活してました。
 が、先日スマホを新しく(アイポンからアンドロ。元々はウィポン)しようとイロイロしてく中で、アンドロな無料ソフトで出来てパソコンでするには難しいか金かかる。な案件が出てきまして、どーも納得できなくて、その実現に試行錯誤してました。

 先日まで60fps再生をイロイロしてましたが、では4kはどうかと、ツベで4K動画を漁ってく中で、最近は特定ジャンルの視聴にハマってしまいまして、どうせ時間を使って再生するなら流し見でも納得したいと試行錯誤してく中で、パソコンでの視聴で不満が爆発してしまいました。
 アニメ本編は基本的に話数に合わせて視聴となるわけですが、ミュージッククリップは再生時間は数分ですが数が多いので視聴や聞き流しは収録順よりもランダム再生をしたくなってきたわけです。

 ですが、ながらな俺としては、再生リストを作成したうえでのランダム再生などメンドイ!
 だいたいファイルはガンガン追加されてくだろうに、いちいち再生リストの作り直しなど手間がかかってしょうがない。
 希望としては
  1.フォルダ指定
  2.フォルダ内検索ワードで絞込リスト作成
  3.絞込リストの連続ランダム(シャッフル)再生。
  4.フルスクリーン
  5.縦合わせ再生
  6.なおかつモニタ指定

 そんな事実現してる動画プレイヤーあるのか? というか、今までさんざんMPC-HC+SVPの組み合わせでイロイロしてたわけで、できればMPC-HCプレイヤーでしてみたいが、、、まぁとりあえずそーいうの実現してるプレイヤーないかググッてみるかと思って探してみましたが、コレといった情報はなく、それどころか現在進行形の怪しいプレイヤー情報が出てきただけ。

 こーなったらまたスクリプトでフロントエンドを作成してMPC-HCにファイル情報呼び出して実現するかな~と、試しにDOSで
> (パス)\mpc-hc.exe /?
と打つと打つとコマンドラインヘルプがウィンドでポップ。それを読むと、、、nanaナナななんだってええええええええええ!


使用方法: mpc-hc.exe "pathname" [switches]

"pathname" 最初のファイルかフォルダが読み込まれる(ワイルドカードの使用可, "-" が標準入力を表す)
    (中略)
/open 自動的に再生を開始せずにファイルを開く
/play      プレーヤーの起動と同時にファイルを再生する
/close 再生終了後にプレーヤーを終了する (/play の使用時のみ有効)
    (中略)
/playnext 再生終了後にフォルダ内の次のファイルを開く
    (中略)
/monitor N  N 番目 (N は 1 から始まる) のモニタで起動する。
/fullscreen  全画面表示モードで起動する
/randomize 再生リストをランダム化する
    (以下略)

これ使ったら希望全部デキルヤ~ンとコマンドぽちっと実行すると

>(パス)\mpc-hc.exe /play /randomize /monitor 2 /fullscreen "(パス)\*tda*.*" 

 はい、あっさり希望機能全部モリモリで再生出来ました。 コマンドラインは基本メニューから使えるハズなんだが、コマンドラインから実行できたいくつかの機能はメニューを漁ってみたが見つける事ができなんだ。 まーいいか、指定がメンドイならあまり使おうって気は起きないから。 手軽に呼び出せるならそっち使うだろーしと、呼び出し方法検討開始。 VBAとかJavaScripsとかHtmlからの呼び出しとかイロイロ考えたけど、今回は機能もシンプルにして全部Batのみキックで実現する事にしました。
 バッチファイルの機能は、フォルダファイル条件を渡してMPC-HCを起動するのみに限定。休日の時間も少ないし、第一メンドクサイのイヤな腐れ元プログラマなエンジニアでした。


 サクッと一時間チョイ試行錯誤して完成。 実行すると22件のフィルタリストの選択を1-9,a-m の22件のキーに割り当てて、mpc-hcを呼び出すバッチファイルの完成。
 最大最大1-9,a-zの35件までいけるけど、多いと選択しの表示で画面がスクロールするんですよね。
 後、多少はグループ名(検索条件)の変更しやすいようにしたつもり。

 mpc-hcにしとけば再生できないファイルはホトンド無いし、これで快適な視聴環境できたわ~って、もうすぐ仕事だorz
 以下実行バッチ。テキストファイルなどに貼り付けてmpc-hc.exeの実行パスや、動画ファイルの場所やフィルタ設定を環境に合わせて保存後、拡張子を.batにしてください。

バッチファイルを実行した様子です。指定フォルダのワード"極"でヒットしたクリップがランダム順番で再生されています。 新しい条件にしたければ、再度バッチをたたけば指定できます。


>修正11/8 意図しない動きがみられたためカウントダウン実行を削除しました。

@echo off
rem ***12016/11/8 MPC-HC再生サポート.bat
rem  MPC-HCに指定した条件のファイルをランダム再生させる。
rem 
rem ***最終コマンド例
rem  start /B /I C:\etc\MPC-HC\mpc-hc.exe /play /randomize /monitor 2 /fullscreen "B:\@yb*.*"
rem 
rem ***使用コマンド解説
rem 
rem mpc-hc.exe 動画プレイヤー フルパス指定。設置場所はファイル命名規約を逸脱しないよう注意。
rem  "pathname" 最初のファイルかフォルダが読み込まれる
rem  /play プレーヤーの起動と同時にファイルを再生する
rem  /randomize 再生リストをランダム化する
rem  /monitor N N 番目 (N は 1 から始まる) のモニタで起動する。ただし無かったり既に起動していたら無効。
rem  /fullscreen 全画面表示モードで起動する 既に起動していたら無効。
rem 
rem START 指定されたプログラムまたはコマンドを実行するためにウィンドウを開きます。 ※最後に使用
rem   /B           新しいウィンドウを作成せずにアプリケーションを起動します。
rem   /I           新しい環境は、現在の環境ではなく、cmd.exe に渡された元の環境になります。


rem ***グループ名(ファイル名)グループ名はDOSの命名規約に依存します。好みで変更してください。追加も可能(最大35個)

SET F1="B:\@yb\*.*"
SET F2="B:\@yb\*mmd杯*.*"
SET F3="B:\@yb\*mmd60fps*.*"
SET F4="B:\@yb\*tda*.*"
SET F5="B:\@yb\*つみ*.*"
SET F6="B:\@yb\*ななみ*.*"
SET F7="B:\@yb\*cat*.*"
SET F8="B:\@yb\*3840*.*"
SET F9="B:\@yb\*60*.*"
SET F10="B:\@yb\*藍様*.*"
SET F11="B:\@yb\*ミク*.*"
SET F12="B:\@yb\*ハク*.*"
SET F13="B:\@yb\*いすず*.*"
SET F14="B:\@yb\*極*.*"
SET F15="B:\@yb\*ダ*.*"
SET F16="B:\@yb\*艦*.*"
SET F17="B:\@yb\*東*.*"
SET F18="B:\@yb\*アン*.*"
SET F19="B:\@yb\*紳*.*"
SET F20="B:\@yb\*乳*.*"
SET F21="B:\@yb\*18*.*"
SET F22="B:\@yb\*sex*.*"


rem ****MPC-HC起動文 好みで変更してください。

SET EXENAME=C:\etc\MPC-HC\mpc-hc.exe /play /randomize /monitor 2 /fullscreen


rem ****メニュー表示 m以下だと強制スクロール 選択を増やす場合追加****
rem  最大は(1-9 a-Z)で35個までOK。※0は除外 記号は不可
rem  追加時は対応するFxx文とchoice /c:1~を増やす必要あり。
rem  後、数を増やすと選択支がスクロールするので、配置に工夫が必要?

echo MPC-HC再生(全画面ランダム)のファイルグループを選択してください。
echo  1. %F1%
echo  2. %F2%
echo  3. %F3%
echo  4. %F4%
echo  5. %F5%
echo  6. %F6%
echo  7. %F7%
echo  8. %F8%
echo  9. %F9%
echo  a. %F10%
echo  b. %F11%
echo  c. %F12%
echo  d. %F13%
echo  e. %F14%
echo  f. %F15%
echo  g. %F16%
echo  h. %F17%
echo  i. %F18%
echo  j. %F19%
echo  k. %F20%
echo  l. %F21%
echo  m. %F22%
choice /c:123456789abcdefghijklm 

rem ****ファイル名分岐****
IF ERRORLEVEL 22 GOTO 22
IF ERRORLEVEL 21 GOTO 21
IF ERRORLEVEL 20 GOTO 20
IF ERRORLEVEL 19 GOTO 19
IF ERRORLEVEL 18 GOTO 18
IF ERRORLEVEL 17 GOTO 17
IF ERRORLEVEL 16 GOTO 16
IF ERRORLEVEL 15 GOTO 15
IF ERRORLEVEL 14 GOTO 14
IF ERRORLEVEL 13 GOTO 13
IF ERRORLEVEL 12 GOTO 12
IF ERRORLEVEL 11 GOTO 11
IF ERRORLEVEL 10 GOTO 10
IF ERRORLEVEL 9 GOTO 9
IF ERRORLEVEL 8 GOTO 8
IF ERRORLEVEL 7 GOTO 7
IF ERRORLEVEL 6 GOTO 6
IF ERRORLEVEL 5 GOTO 5
IF ERRORLEVEL 4 GOTO 4
IF ERRORLEVEL 3 GOTO 3
IF ERRORLEVEL 2 GOTO 2

rem ****ファイル名投入****
SET FILENAME=%F1%
GOTO end

:2
SET FILENAME=%F2%
GOTO end

:3
SET FILENAME=%F3%
GOTO end

:4
SET FILENAME=%F4%
GOTO end

:5
SET FILENAME=%F5%
GOTO end

:6
SET FILENAME=%F6%
GOTO end

:7
SET FILENAME=%F7%
GOTO end

:8
SET FILENAME=%F8%
GOTO end

:9
SET FILENAME=%F9%
GOTO end

:10
SET FILENAME=%F10%
GOTO end

:11
SET FILENAME=%F11%
GOTO end

:12
SET FILENAME=%F12%
GOTO end

:13
SET FILENAME=%F13%
GOTO end

:14
SET FILENAME=%F14%
GOTO end

:15
SET FILENAME=%F15%
GOTO end

:16
SET FILENAME=%F16%
GOTO end

:17
SET FILENAME=%F17%
GOTO end

:18
SET FILENAME=%F18%
GOTO end

:19
SET FILENAME=%F19%
GOTO end

:20
SET FILENAME=%F20%
GOTO end

:21
SET FILENAME=%F21%
GOTO end

:22
SET FILENAME=%F22%
GOTO end


rem ****MPC-HCプレイヤー起動****
:end
cls
start /B /I %EXENAME% %FILENAME%
exit