Board logo

标题: [其他] [已解决]批处理的 if "%~f1"=="" 是什么意思?谢谢 [打印本页]

作者: yyz219    时间: 2024-2-25 11:35     标题: [已解决]批处理的 if "%~f1"=="" 是什么意思?谢谢

本帖最后由 yyz219 于 2024-3-31 11:58 编辑

问题解决了:


拖放就相当于命令行里命令之后的第一个参数,即%1
比如你将一个文件或目录拖放到批处理图标上,这个文件或目录就会被批处理识别为%1来操作
这一句中,%~f1 就是%1的全路径
意思就是如果%1路径为空就提示  ========= 【将*.webp】 拖拽到 【批处理图标】 ========
并到:m段执行

如果%1路径不为空,后面的代码就是转到%1路径,并设置窗口宽高及颜色
所以有拖放就到绿色窗口,没有拖放就出现黑色窗口提示===========================================




===============================================================
原来的问题:

webp-转-png-JPG格式(拖).bat:
  1. @echo off
  2. echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. %【留下 10个 空行】%
  3. if "%~f1"=="" echo.              ========= 【将*.webp】 拖拽到 【批处理图标】 ======== & goto :m
  4. ::=======================================================
  5. cd /d "%~dp1"
  6. ::界面大小,Cols为宽,Lines为高
  7. mode con cols=15 lines=7
  8. color 2F
  9. :menu
  10. cls
  11. ECHO.
  12. ECHO  1:转为 PNG
  13. ECHO  2:转为 JPG
  14. ECHO.
  15. set /p a=.▼.选择数字
  16. cls
  17. if %a%==1 goto :PNG
  18. if %a%==2 goto :JPG
  19. :PNG
  20. for %%i in (*.webp) do %~dp0ffmpeg.exe -i "%%i" "%%~ni.png" -y
  21. goto :menu
  22. :JPG
  23. for %%i in (*.webp) do %~dp0ffmpeg.exe -i "%%i" "%%~ni.jpg" -y
  24. goto :menu
  25. ::=======================================================
  26. :m
  27. pause>nul 2>nul
  28. exit
复制代码

作者: yyz219    时间: 2024-2-25 11:55

为什么拖拽的时候,能够跳过:第一、二行  代码?
作者: Batcher    时间: 2024-2-25 22:00

喜欢“拖放”的人,终究有一天会因为特殊字符、误删文件之类的问题而追悔莫及。
作者: yyz219    时间: 2024-2-26 06:46

回复 3# Batcher


    谢谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2