[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]拖入WAV并播放的批处理错在哪里?

player.exe 是一个命令行播放器,只支持WAV格式。我想做个批处理,拖入后播放。
  1. @echo off
  2. :start
  3. cls
  4. setlocal enabledelayedexpansion
  5. echo.
  6. set /p "File=请拖入WAV文件:"
  7. for /f "delims=" %%i in ("%File%") do set "name=%%~ni"
  8. if exist %name%.wav goto play
  9. goto start
  10. :play
  11. title %name%
  12. player.exe %File%
  13. endlocal
  14. goto start
复制代码
我拖入正确的音频文件时,还是跳回到开始。没有中间的goto跳转就可以正确播放,但拖入不支持的格式的话,会出现播放器错误提示。

判断文件后缀的方法,怎么写才更简洁有效??

谢谢!

[ 本帖最后由 aries215 于 2010-10-20 21:28 编辑 ]
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

话说拖入多条路径到窗口可以试试 more<con

TOP

呵呵,不好意思,当时说话不够耐心,其实这个东西不是很难的,看看高手的代码就知道了。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

多年以后回来看看, 觉得"cjiabing"的拖拉至批处理图标的代码很好用, 很方便!
谢谢!!

TOP

播放器本身不支持批量播放,前面已经提到。
用你前面的代码试过,放完第一首就停在那里了,不支持批量播放。所以不考虑这个多文件的情况,它本身就是特意为音质而生,第一版,麻烦一点也算了。

哎~ 你没下载那个播放器(没毒的,但要ASIO支持),你只是理论上说而已。

[ 本帖最后由 aries215 于 2010-10-22 11:47 编辑 ]

TOP

回复 29楼 的帖子

你厉害!~教教我怎么把多个文件同时拖入窗口(非程序图标)?
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

不知道我上面这样写有没有语法问题?

TOP

改成下面这样就成功了:
  1. @echo off
  2. :start
  3. cls
  4. echo.
  5. setlocal ENABLEDELAYEDEXPANSION
  6. set /p File=请拖入WAV文件:
  7. if defined File (
  8. for /f "tokens=*" %%a in ("!File!") do (
  9. for  %%i in (%%a) do if "%%~xi"==".wav" "%~dp0yoyotu.exe" "ASIO4ALL v2" "%%~i"
  10. )
  11. )
  12. endlocal
  13. goto start
复制代码
因为音乐文件位于好几个不同的目录,拖入图标的话有时候有点麻烦,所以改成拖入窗口的方式。

TOP

回复 26楼 的帖子

本,换成程序完整路径名,你换成“yoyotu.exe”肯定不行啊!~
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 22楼 的帖子

这种拖入方法不通用吧?用“ECHO”命令可以,但具体换成“yoyotu.exe”播放器就不行了。

提示:
'yoyotu.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。

[ 本帖最后由 aries215 于 2010-10-19 21:23 编辑 ]

TOP

问题没有完全解决

用的是8楼的代码。

问题是这个脚本不支持特殊文件名:
1、带空格的话会显示找不到文件(连错误提示也是乱码!),我发现改用ECHO命令会看见实际用了两次双引号;
2、带特殊符号的话拖入后一回车CMD窗口就消失!

求修正

TOP

多谢楼上的耐心,我明白了。
但是结果还是一样,无法播放。

TOP

再强调一下,是拖拉至程序图标,不是拖拉至打开的窗口!~

TOP

送佛送到西,好人做到底吧!~
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set tsr=%*
  4. if defined tsr (
  5. for /f "tokens=*" %%a in ("!tsr!") do  (
  6.     for  %%i in (%%a) do if exist %%i title "%%~i"&player.exe "%%~i"  
  7. )                                 
  8. )
  9. pause
复制代码

我还是没试过,你试了再跟我说。
1

评分人数

    • aries215: 乐于助人! 拖拉至批处理图标的代码用途很广 ...技术 + 1

TOP

以我有限的水平,你这个批处理应该能实现:显示所拖入的文件。
可是我使用的结果是,窗口一闪就没了,我根本没机会拖入文件。
我承认我不会修改~

TOP

返回列表