[過去ログ] 【.cmd】 バッチファイルスクリプト %14 【.bat】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
84: デフォルトの名無しさん [sage] 2020/09/20(日) 20:29:41.51 ID:QtwFpjW/(1/2) AAS
恐れ入ります。初心者です。
約400個の.m4aファイルを.mp3形式に変換しようとしています。
以下のようなバッチファイル作成において、出力ファイル名の記述が大変なのですが、
ffmpeg -i aa001.m4a -ab 48k aa001.mp3
ffmpeg -i bb004.m4a -ab 48k bb004.mp3
ffmpeg -i c030.m4a -ab 48k c030.mp3
入力ファイル名の文字列だけを変数のようにして、出力ファイル名として利用できないでしょうか?
以下のようなイメージです。
ffmpeg -i aa001.m4a -ab 48k 変数.mp3
ffmpeg -i bb004.m4a -ab 48k 変数.mp3
ffmpeg -i c030.m4a -ab 48k 変数.mp3
説明は面倒かと思いますので、参照すべきURL、
もしくは検索ワードだけでも教えて頂けると助かります。
191: デフォルトの名無しさん [sage] 2021/02/18(木) 06:38:53.51 ID:tGVFfDdH(1) AAS
>>189D&Dしたフォルダのフルパスは内緒か?
半角スペースは含まれているか?
半角の )^& 等の文字は含まれているか?
322: デフォルトの名無しさん [sage] 2021/07/29(木) 19:43:02.51 ID:YC90wu7g(2/3) AAS
直ぐ上のレスぐらい読め
377(1): 371 [sage] 2021/09/02(木) 11:56:43.51 ID:SBJQlu/e(1/2) AAS
>>371371(3): デフォルトの名無しさん [sage] 2021/09/01(水) 23:03:16.29 ID:UTT/foLD(1/2) AAS
例えば、デスクトップにショートカットを作る。
コマンドプロンプトを起動して、Ruby スクリプト・a.rb を実行する
リンク先
C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/a.rb"
(ただし、書き込めないので、間に@を入れました)
作業フォルダ
C:\Users\Owner\Desktop
例えば、a.rb 内では、以下のようにRubyスクリプト内で、
7zip を起動して、ドロップしたファイルのSHA256 ハッシュ値を求める
command = "C:/Program Files/7-Zip/7z.exe"
option = " h -scrcsha256 "
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
res = `#{ '"' + command + '"' + option + '"' + full_path + '"' }` # コマンド実行
puts full_path + res + ( "-" * 20 )
end
(ARGV は配列で、そこにコマンドライン引数・ドロップしたファイルパスが渡ってくる)
それで、ショートカットに、複数のファイルをdrag&drop すると、
コマンドプロンプトが起動して、各ファイルのハッシュ値が求められる
ただし、空白入りの実行ファイルのパスの前後を、"〜" で囲む事で、
Program Files の空白文字も処理できるが、
ドロップしたファイルパスに空白文字があると、
パスの前後を、"〜" で囲んでも、エラーになって処理できない
に書いたように、コマンドプロンプトから、Ruby スクリプトを起動する方法では、
ドロップしたファイルパスに空白文字があると、バグる
PowerShell から、Ruby スクリプトを起動する方法では、
ドロップした複数のファイルパスを渡す方法が分からない
結局、以下のように、Ruby スクリプトを直接起動する方法では、
空白文字でも、複数のファイルパスでも、バグらない
ショートカットのリンク先
C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/a.rb
puts ARGV # ドロップした複数のファイルパスの配列
sleep # 出力したコマンドプロンプト画面を閉じないようにする
378(1): デフォルトの名無しさん [sage] 2021/09/02(木) 12:14:08.51 ID:ctEO1PZh(1/2) AAS
既視感あると思ったら >>156156(2): デフォルトの名無しさん [sage] 2021/01/29(金) 20:32:39.25 ID:mJjQcNNM(1) AAS
ffmpeg.exeをpathの通ったディレクトリに配置
またはffmpegのPathを環境変数Pathに追加
:: D&Dで使うならショートカットの作業ディレクトリを空欄にする
:LOOP
if not exist "%~1" pause &exit /b
start "" ffmpeg -i "%~1" -vcodec copy -acodec copy "%~n1.mp4"
shift
goto :LOOP
に同じようなのがあるね
書き方似てるし >>362362(4): デフォルトの名無しさん [sage] 2021/09/01(水) 16:04:27.85 ID:rR7+iwTB(1) AAS
@echo off
:LOOP
if not exist "%~nx1" pause &exit /b
if exist "%~n1_k_h265.mp4" echo ERROR: 出力と同名のファイルが存在します&pause &exit /b
ffmpeg.exe -i "%~nx1" -c:v libx265 -c:a copy -crf 22 -tag:v hvc1 "%~n1_k_h265.mp4"
shift /1
goto :LOOP
と同じ人なんだろうか
start の有無の違いはなんで?
593(1): デフォルトの名無しさん [sage] 2021/12/15(水) 21:34:23.51 ID:Ttj+NiJr(1) AAS
>>540540(1): デフォルトの名無しさん [sage] 2021/12/02(木) 21:10:02.03 ID:NUCi8UEu(1) AAS
0:00前後に実行するとおかしなことになるから%date%と%time%はかならず一時変数に入れるべき
もっと言えば日付と時刻を同時に取れる手段を使うべき
の問題で痛い目を見るから俺は%date%%time%は使わない
601(3): デフォルトの名無しさん [sage] 2021/12/17(金) 19:18:20.51 ID:b/qKwgTk(1) AAS
:loop
set d=%date%
set t=%time%
if not %d%==%date% goto loop
680(2): デフォルトの名無しさん [sage] 2022/03/12(土) 02:42:22.51 ID:1/likOkq(1/3) AAS
家の光回線をIPv4 over IPv6に変えたら、「VPN931でしょ?」ERRORが出て書き込めなくなった
試行錯誤の後、携帯回線を無線子機経由、テザリングで繋いでおき
「ネットワークアダプター」のページからイーサネット(有線)を無効にして書き込み、
書き込みが終わったら再び光回線を有効にするようにした
しかし、つい携帯回線に切り換えたのを忘れたまま動画を観てしまうようなことが何度もあり、
1回で月無料分のギガを使い切ってしまい、有料になったり速度制限がかかったりして不便&勿体ないので
なんとかバッチ処理出来ないかと思い、
「有線LAN 無効化 バッチ」で検索して見つけた下記のページを参考にしてバッチファイルを作ってみた
↓
外部リンク:mseeeen.msen.jp
----------
@ECHO OFF
netsh interface set interface "イーサネット" disabled
ECHO 一時的に光回線(有線・イーサネット)をOFFにしました
timeout 30
netsh interface set interface "イーサネット" enabled
if ERRORLEVEL = 1 PAUSE
----------
上記を拡張子batで保存し、参考URL同様にショートカット経由で管理者権限で起動するようにしました。
※メモ帳で編集したとき、デフォルトでUTF-8→ANSIにすることを知らずに文字化けして上手く動かなかったのはお約束。
これで、書き込む直前にショートカットで起動すれば
30秒だけ光回線が切れ、wifi=携帯回線で書き込める
その後は自動復帰するので繋ぎ忘れが無くなった
もしもっと良い方法があれば教えてくださいm(_ _)m
747: デフォルトの名無しさん [sage] 2022/04/21(木) 16:29:36.51 ID:7MR/4l0o(1) AAS
ちゃん!
749: 721 [sage] 2022/04/24(日) 11:08:56.51 ID:IqM9oVR7(1) AAS
>>748748(4): デフォルトの名無しさん [sage] 2022/04/24(日) 09:15:29.28 ID:vcjjnxKB(1) AAS
>>739
setlocal enabledelayedexpansion
set n=0
for %%a in (%*) do set /a n+=1
if %n% GTR 64 >&2 echo ERROR: Args is Max limit 64 exceeded.&pause&exit /b 1
set A=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$+-/:@[]_{}
set i=0
for %%a in (%*) do for %%b in (!i!) do for /f %%c in ("!A:~%%b,1!") do (
set "CMD_FOR=!CMD_FOR!for /f "usebackq delims=" %%%%c in (%%a) do "
set CMD_OUT=!CMD_OUT!,%%%%c
set /a i+=1
)
%CMD_FOR%echo %CMD_OUT:~1%
pause&exit /b 0
引数最大64個になってるけどfor変数のリストset Aを追加すれば増やせる
実際にどこまでforを多段に出来るかは知らない
コマンドの文字数制限とかあったような気がする
頭に@echo offをつけやってみました
10万行ぐらいの出力ファイルを
ローカルHDDに作ると
721では30分、
748では5分以内
(いつ終わったか分からないため)
となりました
ファイルのお尻になんか1行
ついてるのはご愛敬
801(1): デフォルトの名無しさん [sage] 2022/05/25(水) 20:31:54.51 ID:CvuRtmLM(1) AAS
C:\Program Files (x86)
結構昔からあるこのフォルダの配下に置かれたファイルをまともに扱えるバッチはどれだけあるだろうか…
807(3): デフォルトの名無しさん [] 2022/05/27(金) 15:37:55.51 ID:DoIFvz+R(1) AAS
>>802802(1): デフォルトの名無しさん [sage] 2022/05/26(木) 00:47:09.31 ID:/szrY+JV(1) AAS
>>800
いや、だからその結果が違うのを踏まえた上で、何か罠があったりするのか、という話
回避策があるのにわざわざ問題のある2例しか上げてないから、
何かしらの罠があるから例に出さずにいたのかな、と
環境変数にダブルクォートが入るかそうじゃないかだけの問題なのでそこだけの違いにした
こっちの書き方の方が好みか?
set "File3=X:\a a.txt"
set "File4="X:\a a.txt""
File4の書き方は受け入れられんだろうからこの書き方はやめた
833: デフォルトの名無しさん [sage] 2022/05/29(日) 01:40:32.51 ID:MBI5r2Hn(1) AAS
対象がHKLMならSYSTEMタスクで普通にバッチ呼び出せばいいんじゃないの
っていうかレジストリいじらんでも「sc config DoSvc start= disabled」でいいんじゃないか
860: デフォルトの名無しさん [sage] 2022/06/04(土) 00:01:31.51 ID:qz14Jeu3(1) AAS
AWS の本にも、Windows サーバーの記述は、1% ぐらいしかない。
システムで、Windowsを使う香具師がいない
ファイル共有・Active Directory・タスクスケジューラ・Remote Desktop、
バッチ・コマンドプロンプト・PowerShell ぐらいが、簡単に紹介されているだけ
ほとんどがDocker を使う。DockerはLinuxの技術。
だから、Windows 10のWSL2 で、Linuxを使えるようにしている
901: デフォルトの名無しさん [sage] 2022/08/14(日) 19:35:36.51 ID:R62l2k+7(1) AAS
>>900900(2): 898 [sage] 2022/08/14(日) 18:43:42.99 ID:0tA/3KXA(1/2) AAS
各コマンドのヘルプ見たり試してみたけど良く分からなかった
WAN側IPとそのホスト名をコマンドから知れないか?を知りたかったんだけど無理そうですか?
nslookupで引数にIP指定すればホスト名は取れるんだけどIPをどうやって知ったら良いものか
状況がよくわからん
「WAN側IP」とか言ってるから自宅(自社)のルーターを自宅(自社)のLAN側から知りたいという話?
991: デフォルトの名無しさん [sage] 2022/09/15(木) 12:54:46.51 ID:EPORcPim(2/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s