从另一个文件夹运行批处理文件

克拉马克

包含批处理文件的文件夹和包含将被规范化的音频文件的文件夹位于桌面上。

当我将包含批处理文件的文件夹移动到另一个位置,例如 D:\ 并运行批处理文件时,它说它没有找到桌面文件夹中的音频文件。

批处理在执行将读取桌面文件夹中的音频文件的 FOR 命令时取消:

FOR /F "delims=" %%a in ('dir /b *.flac ^|find /v /i "_LOUDNORM" ^|find /v /i "_EBU"') DO

根据下面链接中的信息,我尝试更改放置桌面文件夹的绝对路径的 FOR 命令,但即使如此,该命令也找不到该文件:

命令提示符目录-b

FOR /F "delims=" %%a in ('dir /b C:\Users\CMG\Desktop\Audios to convert\*.flac ^|find /v /i "_LOUDNORM" ^|find /v /i "_EBU"') DO

或者

FOR /F "delims=" %%a in ('dir /b "C:\Users\CMG\Desktop\Audios to convert\*.flac" ^|find /v /i "_LOUDNORM" ^|find /v /i "_EBU"') DO

如何使批处理文件在目录 D:\ 中正常运行?

完整命令:

FOR /F "delims=" %%a in ('dir /b *.flac ^|find /v /i "_LOUDNORM" ^|find /v /i "_EBU"') DO (
  SET "filename=%%~na"   
  ffmpeg -hide_banner -i "%%a" -af "[0:a]loudnorm=print_format=summary" -f null NUL 2> "%%~na.log"
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input Integrated" "%%~na.log"') DO (SET II=%%b)
  @FOR /F "tokens=4" %%b IN ('FINDSTR /C:"Input True Peak" "%%~na.log"') DO (SET ITP=%%b)
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input LRA" "%%~na.log"') DO (SET ILRA=%%b)
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input Threshold" "%%~na.log"') DO (SET IT=%%b)
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Target Offset" "%%~na.log"') DO (SET TO=%%b)
  DEL "%%~na.log"
  SETLOCAL ENABLEDELAYEDEXPANSION
  ECHO !II!   Input Integrated
  ECHO !ITP!  Input True Peak
  ECHO !ILRA! Input LRA
  ECHO !IT!   Input Threshold
  ECHO !TO!   Target Offset
  FOR /F "tokens=1,2 delims=," %%b IN ('ffprobe -v 0 -select_streams a -show_entries "stream=sample_fmt,sample_rate" -of "csv=p=0" "!filename!.flac"') DO (
  ffmpeg -hide_banner -i "!filename!.flac" -af "loudnorm=linear=true:I=!_vLUF!:LRA=11:tp=!_vPEAK!:measured_I=!II!:measured_LRA=!ILRA!:measured_tp=!ITP!:measured_thresh=!IT!:offset=!TO!:print_format=summary" -c:v copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" -map 0:0 -c:a flac -sample_fmt:a %%b -ar:a %%c "C:\Users\%username%\Desktop\Normalizando_lufs\!filename!.flac"
  )
  ENDLOCAL
)
时光荏苒

你可以试试:

@echo off

pushd "%Userprofile%\Desktop\Audios to convert"
for /f delimsˆ= %%a in ('where .:*.flac ^|findstr /vi "_loudnorm  _ebu"')do ...
popd 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

批处理文件:复制除一个文件夹外的所有文件和文件夹

批处理文件脚本将文件(文本文件的输入行)从一个文件夹复制到另一个文件夹

批处理文件可将文件从文本文件中的源移动到另一个文本文件中的多个文件夹

批处理文件,选择数量为%x%的文件并将其复制到另一个文件夹

批处理文件,选择x数量的文件并将其复制到另一个文件夹

如何使用Windows批处理文件或VBS脚本一次将多个文件从2个文件夹一次复制到另一个文件夹

是否可以使用Powershell或批处理文件将文件夹中的每个文件重命名为另一个名称?

批处理文件FOR循环仅在文件夹存在于另一个文件夹中时才复制文件夹

需要创建一个批处理文件以从一个文件夹中选择一个随机文件并复制到另一个文件夹

批处理文件可将文件随机复制到另一个文件夹

批处理文件-如何读取一个文件夹中的多个.txt文件?

批处理-如何关闭从另一个批处理文件启动的批处理文件

创建一个批处理文件,该文件将文本文件和文件夹中的文件名进行比较,如果匹配,它将文件复制到另一个文件夹

Windows批处理文件,循环浏览文件夹中的文件以创建参数列表以传递到另一个脚本

我可以在当前的批处理文件窗口中运行另一个批处理文件吗?

批处理文件以将文件夹移动到另一个

调用另一个批处理文件的调用批处理文件失败

循环调用另一个批处理文件的批处理文件

批处理文件以将文件从USB复制到C :,然后从c:\ temp运行另一个批处理文件

如何在另一个批处理文件中调用一个批处理文件?

从另一个批处理文件调用一个批处理,并从外部批处理中设置内部批处理文件参数

如何从另一个文件夹中的批处理中运行.bat

Windows 批处理文件以提升的权限启动另一个批处理

一个批处理文件首先移动最近的文件夹?

批处理文件将 2 个最近的文件复制到另一个文件夹中

仅当从另一个批处理文件调用批处理文件时,如何才能处理该批处理文件?

在 Notepad++ 打开的文件夹中打开一个批处理文件

循环批处理文件,用于将不同文件夹中的多个文本文件合并到另一个不同文件夹中的一个文本文件

使批处理文件等待另一个批处理文件