0

残念ながら、私のシェル スキルは非常に低く、QNAP で簡単なスクリプトを実行して一部のビデオの日付の問題を修正するには、助けが必要です。

私が配置したスクリプトは非常に簡単です。

  1. 特定のフォルダに
  2. VID_ で始まる .mp4 ファイルがあるかどうかを確認します
  3. その場合、それらのそれぞれに対して、指定された exiftool コマンドを実行します

これまでのスクリプトは次のとおりですが、変数を呼び出す正しい方法を使用していないと思います。

#!/bin/sh

# set target directories
dir="/share/Multimedia/Pictures/"

# move to target directory
cd "$dir"

# check if there is some .mp4 file starting with "VID_" in the folder

VID=$(ls -A $dir | grep 'VID_' | grep './mp4')

if
    ["$VID"];

then

    # for each file in the list
    for f in $VID

        do

        # change all date metadata according to its filename
        exiftool "-*date<filename" -wm w $f

done

else

fi

ご協力いただきありがとうございます!

ps: exiftool 命令は正しいです (おそらく変数を除く)

4

2 に答える 2

0

あなたのコードはおそらく以下の使用のために失敗しています:

grep './mp4'

/前がないのでmp4

スクリプトを次のようにすることをお勧めします。

#!/bin/sh

# set target directories
dir="/share/Multimedia/Pictures/"

# move to target directory
cd "$dir"

for f in VID_*.mp4; do
   exiftool "-*date<filename" -wm w "$f"
done

lshereの出力を解析する必要はありませんgrep。globVID_*.mp4が正しいファイルを見つける仕事をするので、使用する必要はありません。

于 2015-10-21T16:50:16.483 に答える
0

これをスクリプト化する必要はありません。ファイルごとに ExifTool を呼び出す必要があるため、スクリプト化すると速度が低下するだけです。ExifTool は、1 つのパスですべてのファイルを処理できます。
ExifTool -ext mp4 '-*date<filename' -wm w /path/to/dir/VID_*

オプションは-ext mp4、コマンドを mp4 ファイルのみに制限します。Linux/Mac システムを使用しているように見えるため、二重引用符を単一引用符に変更する必要がありました。Windows システムでは二重引用符、linux/mac システムでは単一引用符が必要です。

于 2015-10-21T21:40:33.373 に答える