[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

把 set "name=%%~ni"
改为set "name=%%~fni"
试试
1

评分人数

    • CrLf: 乐于助人PB + 3

TOP

  1. if "%%~xi"==".wav" goto play
复制代码

TOP

楼上两个都试了,还是不行,拖入正确的文件还会跳回到 start 处,无法播放~

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

TOP

回复 3楼 的帖子

这个%~xi后缀应该不带 . 号的吧?

TOP

你插的位置对不对?加在for循环里面

TOP

大哥,你还是帮我弄个完整的吧

我的是(删掉 Set 一句,感觉不通顺了):
@echo on
:start
cls
setlocal enabledelayedexpansion
echo.
set /p "File=请拖入WAV文件:"
for /f "delims=" %%i in ("%File%") do if "%%~xi"=="wav" goto play
goto start
:play
title %name%
player.exe %File%
endlocal
goto start

TOP

  1. @echo off
  2. cls
  3. setlocal enabledelayedexpansion
  4. echo.
  5. set /p "File=请拖入WAV文件:"
  6. for /f "delims=" %%i in ("%File%") do (
  7.      if "%%~xi"==".wav" (
  8.        title [%%~ni]
  9.        player.exe "%File%"
  10.       ) else (echo 文件类型错误)     
  11. )
  12. pause>nul
  13. cls&%0
复制代码

[ 本帖最后由 TX_kakashi 于 2010-10-15 09:37 编辑 ]
1

评分人数

TOP

很热心的高手!

行了,满意!
又帮我一回!
非常感谢!

这个播放器在这里:
http://bbs.erji.com/read.php?fid=125&tid=923120

TOP

批处理判断输入类型 http://www.bathome.net/thread-9555-1-1.html

界面拖入没有意义吧?拖入多个只能显示一个,用FOR是多余的。
要支持拖入多个需要把文件拖入程序图标就可以了。
批处理版音视频播放器http://www.bathome.net/thread-9556-1-1.html

[ 本帖最后由 cjiabing 于 2010-10-15 09:59 编辑 ]
1

评分人数

    • CrLf: 乐于助人PB + 5

TOP

回复 10楼 的帖子

谢谢LS提示,正在研习!

TOP

我提到的播放器在这里:
http://bbs.erji.com/read.php?fid=125&tid=923120

不同的播放器,音质是不一样的。

你那个批处理的确强大,对我这个播放器的帮助应该主要是可以支持拖入多个文件吧?具体可以怎么改呢?
谢谢!

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 echo %%~i   
  7. )                                 
  8. )
  9. pause
复制代码
不过要判断wav不好进行,自己试试吧,实在不得你就用findstr /v ".wav"。

[ 本帖最后由 cjiabing 于 2010-10-15 10:44 编辑 ]

TOP

哎~
我(现在用8楼的代码)拖个中文名的文件,窗口一闪就没了,不知什么原因,可能是播放器不支持,完全看不清提示!

[ 本帖最后由 aries215 于 2010-10-15 10:35 编辑 ]

TOP

回复 13楼 的帖子

你这个居然有中文的括号 - - !
窗口一闪就没有了,完全没办法拖放文件!

[ 本帖最后由 aries215 于 2010-10-15 10:36 编辑 ]

TOP

返回列表