-1

ディレクトリ内の .mp3 または .flac (大文字と小文字を区別しない) で終わるすべてのファイルを再帰的に調べC:\Songs、オーディオ フィンガープリントの文字列表現を返す Windows コマンド プロンプトから実行されるバイナリ ファイルに各ファイル パスを引数として渡します。 .

次に、レコードを 2xn sqlite テーブルに挿入したいと思います。ここで、n は私が持っている曲の数です。2 つのフィールドは、ファイルパスと、Windows コマンド プロンプトから実行されたコマンドの出力です。

始めるのに助けが必要です。>>コマンドライン出力をフラットファイルに出力できます。sqlite データベースにレコードを挿入することもできます。ただし、コマンドラインからの出力を直接sqliteテーブルに渡すために使用できる言語はわかりません。望ましい目標を達成するための推奨言語とその使用方法はありますか?

また、私は Windows 7 を使用していますが、別の Windows OS を使用していた場合でもルーチンは同じになると思います。

4

2 に答える 2

3

バッチ スクリプトの使用

@echo off
setlocal

pushd "C:\Songs"

REM Get the file count
for /f %%N in ('dir /b /a-d *.mp3 *.flac^|find /c /v ""') do set "cnt=%%N"
REM The file count is now in the cnt variable. I'll simply ECHO the value
echo File count = %cnt%

REM Process each file
for %%F in (*.mp3 *.flac) do (
  REM The file name is now in %%F variable

  REM Run your command - I'm assuming it only produces 1 line of output
  for /f "delims=" %%A in ('yourCommand yourArgs "%%F"') do (
    REM the command output is now in %%A

    REM Write your records. You will have to come up with the syntax here
    REM I'll simply echo the record to the screen
    echo "%%F", "%%A"
  )
)

popd
于 2012-12-14T13:16:07.563 に答える
1

これには、Windowsバッチスクリプトを使用できます。@dbenhamの答えは、それがあなたが取りたいアプローチである場合、良いスタートのように見えます(そして私はその答えに賛成しました)。

しかし、実際のエラーチェックが必要な場合、またはこれを時間の経過とともに強化したい場合は、実際のプログラミング言語またはスクリプト言語をお勧めします。良い選択はたくさんあります。JavaScriptまたはPHPを使用する方法があります。

個人的に私はこのタイプのコードをPythonで記述しており、非常に満足しています。コマンドを起動したり、stdoutを読み取ったりすることができます。さらに、組み込みのsqliteをサポートしています。

于 2012-12-14T14:44:18.287 に答える