-1

我想递归遍历我的C:\Songs目录中以 .mp3 或 .flac (不区分大小写)结尾的所有文件,并将每个文件路径作为参数传递给从 Windows 命令提示符运行的二进制文件,该文件返回音频指纹的字符串表示.

然后我想在 2xn sqlite 表中插入一条记录,其中 n 是我拥有的歌曲数。这两个字段是文件路径和从 Windows 命令提示符运行的命令的输出。

我需要一些帮助才能开始。我可以>>将命令行输出到一个平面文件。我还可以将记录插入到 sqlite 数据库中。但是我不知道可以使用哪些语言将命令行的输出直接传递到 sqlite 表。您对语言有什么建议以及如何使用它们来实现预期目标?

另外 - 我使用的是 Windows 7,但我认为如果我使用另一个 Windows 操作系统,例程将是相同的。

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 编写了这种类型的代码,并且对此非常满意。您可以启动命令,读取它的标准输出等。此外,它还支持内置的sqlite 。

于 2012-12-14T14:44:18.287 回答