DISM SFCを なでしこv1で自動化してみる
ここ数か月メインで使用してるPCがブルースクリーンを頻発していたので
上を参考にしてみたところ、特にDISM・SFCが効果的でした。
(これを知る前に物理的にSSDの換装、メモリーの換装なども試しました。そしてPCの買い替えも検討していました。)
うちのPCではブラウザの特定の拡張機能を使うとよくブルースクリーンになるのは
最近になって経験上分かったのですが
時々どうしてもこの拡張機能を使いたい時があり
(勿論、コレだけが原因というわけではないでようです。たぶん)
更にVirtualBox上のVMも2つ以上同時に起動していることも多いことから
ブルースクリーンで落ちた時や、時間のある時、気が付いた時に
(うちのPCでは思ってた以上に結構、頻繁にファイルが壊れてますね…)
それぞれのPC(VM含む)で、
管理者のコマンドプロンプトで
DISM.exe /Online /Cleanup-image /Restorehealth
して、終わるのを数分待ってから
sfc /scannow
もー、待ち時間も呪文を唱えるのも面倒くさくなっています。
(効果が絶大なのでやりますが。)
そこで、なでしこv1で自動化できないか色々と試してみて
コレ↓に落ち着きました。
やっぱり、なでしこv1、便利ですね~。
ほんの数行で、ちょっと調べて合わせるだけで出来上がんだもの。
(ちとハードルが高くv3に移行できないヘタレな万年初心者ですみません。v3でも、同じようにできるのかな?)
簡単に実行出来ると歯磨きをするように、やらずにはいられないこの頃です。
#DISM_SFC
#このプログラムをDISM_SFC.nakoのファイル名で保存してから実行
ファイル名=「DISM_SFC.nako」
管理者権限取得。
もし、それがいいえならば、
「"{ランタイムパス}vnako.exe" "{ファイル名}"」を管理者権限実行。
終わる。
「C:\windows\Sysnative\cmd.exe /C DISM.exe /Online /Cleanup-image /Restorehealth」を起動待機。
「C:\windows\Sysnative\cmd.exe /K sfc /scannow」を起動。
終わる。
#ここまで
#cmdオプション /C :実行後閉じる /K :閉じない
#「起動待機」で使うなら /C
なでしこは、今現在、仕事にプライベートに毎日欠かせない状態で、
感謝を込めて少しでも、お役に立てればと思い
今回初めて、日本語プログラミング言語「なでしこ」 Advent Calendarに参加させていただきました。
万年初心者ユーザーならではの、なでしこの魅力が見ていただいた方に伝われば幸いです。
bunkoOCR Helper
bunkoOCRを少し試しているのですが、認識率もさることながら、GoogleDriveでのOCRで出来なかったルビ無しのOCRがいいですね。
※うちのPC(CPU AMD Ryzen 7 PRO 4750GE with Radeon Graphics 3.10 GHz 内臓GPU)では1冊bunkoOCRでOCRするのに4時間程度かかりますが…
以前から愛用しているiOS用テキスト読み上げアプリ(Voice Dream Reader)で聴くとGoogleDriveで変換したテキストではルビが邪魔でいつもイラっとしていましたw。
そこで、bunkoOCRで生成したルビ無テキストファイル(noruby.txt)を結合。
改行ごとにテキスト読み上げアプリ(Voice Dream Reader)では間があるので改行を削除。
代わりに「。」の後に改行を追加。
UFT-8でOCRされるので書式を崩さないように日本語プログラミング言語「なでしこ」v1とPowershellの合わせ技で作ってみました。
できたテキストファイルは、フォルダ名+.noruby.txtです。
Powershellもコマンドプロンプトもほとんど知識無しでしたが、ChatGPT先生に聞きながら試行錯誤したら意外とできるものですね。(一度尋ねてそのまま動いたためしがないのでエラーを含めて何度も尋ねるを繰り返しましたw。)
なでしこv1でプログラムを作るのに便利ですね。ChatGPTもPowershellも。
Bing自動検索
MSリワード、自分用w。
直接https://www.bing.com/news?q={対象}と出来れば良かったんだけど
うまくポイントにならないようで、力業で。
#Bing自動検索
#https://blog-bootcamp.jp/related-keyword/
「.\related_keyword.csv」を開いてSJIS変換
#「.\*.csv」で「.csv」のファイル選択。それを開いてSJIS変換
I=0
それを配列シャッフルしてワドに代入
ワドを反復
「"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" "https://www.bing.com/news?q=%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&form=ml11z9&crea=ml11z9&wt.mc_id=ml11z9&rnoreward=1&rnoreward=1"」を起動
対象をコピー
2秒待つ
266,115へマウス移動
マウスクリック
1秒待つ
266,115へマウス移動
マウスクリック
1秒待つ
『^a』をキー送信
1秒待つ
『^v』をキー送信
0.5秒待つ
『{ENTER}』をキー送信
2秒待つ
I=I+1
『%{F4}』をキー送信
1秒待つ
母艦=「{I}回目 {クリップボード}」
もし I>34ならば「終了します。」と言う。終了
終了
FFmpeg一括変換
※なでしこではShiftJISなファイル名のみ対応だそうなので、ダメそうな文字を含むファイル名のもはfile_name_error_list.txtへ書き込まれます。
※ちなみにアイコンはBing Image Createrに作ってもらいましたw。
※av1の動画をiPhoneで再生するには、要VLCPlayer、いまのところかな。
最近、動画ファイル用のストレージの空き容量がなくなってきたため3年前にH.265で変換した動画ファイルを再度変換してみようと思い試行錯誤してみました。以前試してみたAV1のコーデック「libaom-av1」は、物凄く時間が掛かる代物で実用的ではないと感じてAV1での変換を諦めていましたが、「libsvtav1」を試してみるとこれがlibaom-av1より、速いというかむしろH.265のコーデック「libx265」よりもかなり速い。(2.5倍くらいか・・・)ということで久しぶりに日本語プログラミング言語「なでしこ v1」でffmpegのフロントエンドを作ってみました。
そこで出来た動画を見比べてみても自分の目では遜色ないと思えるのですが数値で画質が数値で測れるVMAFスコアで検証してみました。(100が最高値、%の意味ではなくあくまでも品質評価の指標らしい、たぶん)
Blue-rayからH.264(libx264)で変換したsample.mp4(サイズ:1.61GB 長さ1:39:31) をffmpegで以下のコマンドでそれぞれ変換してます。(libsvtav1のqpは品質で小さいほど高画質となります。)
ffmpeg -i sample.mp4 -vcodec libx265 -c:a aac -ac 2 sample-h265converted.mp4
ffmpeg -i sample.mp4 -vcodec libsvtav1 qp=45 -c:a aac -ac 2 sample-av1converted.mp4
コーデック | サイズ | VMAFスコア |
libx265 | 482 MB | 94.347841 |
libsvtav1 qp=45 | 290 MB | 91.215262 |
libsvtav1 qp=43 | 318 MB | 92.077913 |
libsvtav1 qp=40 | 370 MB | 93.277861 |
libsvtav1 qp=38 | 411 MB | 93.883247 |
libsvtav1 qp=36 | 457 MB | 94.398944 |
以上のような結果となりました。VMAFスコアでlibx265のデフォルト設定と同等な
libsvtav1のqpは36くらいということでサイズ差はいまいち。
でも実際の動画を見てもVMAFスコア90以上あれば十分だとわかりました。
(最近、老眼入ってきてるしねw)
qp=45が自分の中ではサイズと画質の両立ができてると感じてlibsvtav1 qp=45で
動画を再変換することに決めました。
※VMAFスコアをffmpegで計測する場合は
ffmpeg -i [参照動画ファイル] -i [評価対象動画ファイル] -lavfi libvmaf -f null -
ffmpeg でAV1変換
最適AV1変換模索中。
「"{FFMPEG}"
-i "{入力ファイル}"
-vcodec libsvtav1
-qp 45
"{出力ファイル}"」
更新日時一括変更.nako
「D:\」の全ファイル列挙。
それを反復
対象を表示
対象を「{今日} {今}」にファイル更新日時変更