标题: [文件操作] 判断拖放到批处理文件上的两个文件哪个为压缩包 [打印本页]
作者: SmallK 时间: 2012-4-12 20:31 标题: 判断拖放到批处理文件上的两个文件哪个为压缩包
本帖最后由 SmallK 于 2012-4-12 20:49 编辑
- ::设置压缩包文件后缀类型
- set @tx=rar zip 7z
-
- setlocal enabledelayedexpansion
- for %%a in (%@tx%) do (
- if /i "%~x1" equ ".%%a" (
- set @r=%1
- ) else (
- set @r=%2
- )
- )
- echo 您拖放的压缩包文件为!@r!
- pause >nul
复制代码
以上是我写的代码,可是不知道为什么点住压缩包文件到批处理上反而显示图片的名字……
脑子卡死了,麻烦大家帮忙看看哈~
作者: SmallK 时间: 2012-4-12 21:43
问题已解决。这要感谢 more !
以下为修正后的代码:- ::设置压缩包文件后缀类型
- set @tx=rar zip 7z
-
- setlocal enabledelayedexpansion
- for %%a in (%@tx%) do (
- if /i "%~x1" equ ".%%a" set @r=%1
- if /i "%~x2" equ ".%%a" set @r=%2
- )
- echo 您拖放的压缩包文件为!@r!
- pause >nul
复制代码
作者: apang 时间: 2012-4-13 00:04
如果拖放的两个文件都是、或者都不是压缩包,结果就不对了吧
作者: apang 时间: 2012-4-13 00:06
- ::设置压缩包文件后缀类型
- set @tx=rar zip 7z
- setlocal enabledelayedexpansion
- for %%a in (%@tx%) do (
- if /i "%~x1" equ ".%%a" set "@r1=%1"
- if /i "%~x2" equ ".%%a" set "@r2=%2"
- )
- if defined @r1 (
- if defined @r2 (
- set "@r=!@r1! !@r2!"
- ) else set "@r=!@r1!"
- ) else (
- if defined @r2 (
- set "@r=!@r2!"
- ) else set "@r=无"
- )
- echo 您拖放的压缩包文件:!@r!
- pause
复制代码
作者: CrLf 时间: 2012-4-13 01:02
本帖最后由 CrLf 于 2012-4-13 01:04 编辑
另一种思路:- @echo off
-
- for %%a in (%*) do set %%~xa=%%a
- ::将文件路径保存到以相应后缀名为名的变量中
-
- setlocal enabledelayedexpansion
- set j=!.jpg!!.jpeg!!.gif!!.bmp!!.png!!.tif!!.tiff!!.tga!
- set r=!.rar!!.zip!!.7z!
- ::区分图片与压缩包
-
- copy /b !j!+!r!
- ::合并
-
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |