找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21624|回复: 3

[其他] [已解决]批处理的 if "%~f1"=="" 是什么意思?谢谢

[复制链接]
发表于 2024-2-25 11:35:43 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2024-2-25 11:55:43 | 显示全部楼层
为什么拖拽的时候,能够跳过:第一、二行  代码?
发表于 2024-2-25 22:00:15 | 显示全部楼层
喜欢“拖放”的人,终究有一天会因为特殊字符、误删文件之类的问题而追悔莫及。

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-2-26 06:46:09 | 显示全部楼层
回复 3# Batcher


    谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:10 , Processed in 0.019553 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表