[過去ログ] 【.cmd】 バッチファイルスクリプト %14 【.bat】 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
371
(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 の空白文字も処理できるが、
ドロップしたファイルパスに空白文字があると、
パスの前後を、"〜" で囲んでも、エラーになって処理できない
374: 371 [sage] 2021/09/01(水) 23:21:55.11 ID:UTT/foLD(2/2) AAS
ハッシュ値を求めるのは、単なる例え。
ffmpeg の代わりに使っただけ

Ruby スクリプト内で、別のプログラムを呼ぶと、
ドロップされたファイルパス内の空白文字で、はまると言うこと
377
(1): 371 [sage] 2021/09/02(木) 11:56:43.51 ID:SBJQlu/e(1/2) AAS
>>371
に書いたように、コマンドプロンプトから、Ruby スクリプトを起動する方法では、
ドロップしたファイルパスに空白文字があると、バグる

PowerShell から、Ruby スクリプトを起動する方法では、
ドロップした複数のファイルパスを渡す方法が分からない

結局、以下のように、Ruby スクリプトを直接起動する方法では、
空白文字でも、複数のファイルパスでも、バグらない

ショートカットのリンク先
C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/a.rb

puts ARGV # ドロップした複数のファイルパスの配列

sleep # 出力したコマンドプロンプト画面を閉じないようにする
381: 371 [sage] 2021/09/02(木) 13:39:27.82 ID:SBJQlu/e(2/2) AAS
Ruby では、>>377
に書いたように、起動引数・ARGV は配列で、
そこに、ドロップした複数のファイルパスが入ってくる

出力
C:\Users\Owner\Documents\x
C:\Users\Owner\Documents\あ.txt

フォルダx と、ファイル・あ.txt
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s