可以拖一个 名称 含与不含 空格 的文件或目录 看看区别; 拖文件或右键传入的情形,本人倾向于使用:set "a=%~1" @echo off set "a=%~1" set b=%~1 set "c=%1" set d=%1 echo. echo 设置变量a用引号的(%%~1): %a% echo. echo 设置变量b不用引号的(%%~1): %b% echo. echo 设置变量c用引号的(%%1): %c% echo. echo 设置变量d不用引号的(%%1): %d% pause >nul |
参与人数 1 | 无忧币 +3 | 收起 理由 |
---|---|---|
yyz2191958 | + 3 | 赞一个! |
szwp 发表于 2024-2-26 10:46 谢谢 |
还可用title "%~f1"也能看到 |
szwp 发表于 2024-2-26 09:05 赞一个! |
yyz2191958 发表于 2024-2-25 12:12 如果不知道"%~f1"什么意思,可以用echo "%~f1" &pause 来观察,加在if前。 |
参与人数 1 | 无忧币 +3 | 收起 理由 |
---|---|---|
yyz2191958 | + 3 | 赞一个! |
yyz2191958 发表于 2024-2-25 12:24 也可能设置颜色后内部初始化了,不知道呀。老弟,加油! |
hilsonma 发表于 2024-2-25 12:56 赞一个! |
你正在学习兴头上,所以辛苦你测试一下,我那个劲过去了,懒得折腾了 |
yyz2191958 发表于 2024-2-25 13:00 那你试 if %1.==. 这是我一直使用的 有没有空格,有没有拖放,都试一下 |
hilsonma 发表于 2024-2-25 12:31 结果实验: if "%1"==""————目录没有空格的时候正常。有空格的时候,拖到没有反应 if %1==""—————目录有没有空格都正常 |
vhd文件可以直接双击挂载,但右键点弹出后其实并没有完全卸载,所以我做了一个批处理来卸载 现附上内容给楼主参考
|
参与人数 1 | 无忧币 +3 | 收起 理由 |
---|---|---|
yyz2191958 | + 3 | 赞一个! |
hilsonma 发表于 2024-2-25 12:31 很给力! |
本帖最后由 hilsonma 于 2024-2-25 12:32 编辑 拖放就相当于命令行里命令之后的第一个参数,即%1 比如你将一个文件或目录拖放到批处理图标上,这个文件或目录就会被批处理识别为%1来操作
这一句中,%~f1 就是%1的全路径 意思就是如果%1路径为空就提示 ========= 【将*.webp】 拖拽到 【批处理图标】 ======== 并到:m段执行 如果%1路径不为空后面的代码就是转到%1路径,并设置窗口宽高及颜色 所以有拖放就到绿色窗口,没有拖放就出现黑色窗口提示 我通常直接使用 if %1.==. 来判断有没有拖放 由于拖放的文件或目录有可能含有空格,所以最好还是使用 if "%1"=="" 来判断有没有拖放 |
参与人数 1 | 无忧币 +5 | 收起 理由 |
---|---|---|
yyz2191958 | + 5 | 很给力! |
zlq_hysy 发表于 2024-2-25 12:19 不对呀! ::cls——————注释了,也是一样跳过黑窗口 |
zlq_hysy 发表于 2024-2-25 12:19 原来是这样,谢谢 |
yyz2191958 发表于 2024-2-25 11:55 压根就没跳过第一二代码,只是你没肉眼看见而已,十个空行被下面的cls命令清除,if判断不等于空后直接转到下一个命令行cd/d。。。。 |
参与人数 1 | 无忧币 +3 | 收起 理由 |
---|---|---|
yyz2191958 | + 3 | 原来是这样,谢谢 |
szwp 发表于 2024-2-25 11:59 %~f1——————用来判断有没有拖? |
dos时代菜鸟 发表于 2024-2-25 11:36 %~f1下一行的:cd /d "%~dp1"————算不算第一个 参数 ?谢谢 |
dos时代菜鸟 发表于 2024-2-25 11:36 谢谢!我需要慢慢琢磨 |
%~fI - 将 %I 扩展到一个完全合格的路径名 %~f1 表示批处理附带的第一个 参数 所包含的内容 转化成一个完整的文件路径 |
参与人数 1 | 无忧币 +3 | 收起 理由 |
---|---|---|
yyz2191958 | + 3 | 谢谢!我需要慢慢琢磨 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.