标题: [ 新手习题 7 ] 批处理显示文件扩展名 [打印本页]
作者: wxcute 时间: 2008-12-4 20:50 标题: [ 新手习题 7 ] 批处理显示文件扩展名
把一个文件拖放到批处理图标上,显示出文件的扩展名(不含点)
1、不考虑无扩展名的情况
2、增加点难度:还是只拖放一个,但可能是目录,还要考虑无扩展名的情况
如:文件名为 “美女.jpg”,显示:jpg
目录名为 “AUTORUN.INF”,显示:INF
文件名为 “DateBase”,显示:无扩展名
目的:了解何为参数,掌握带参数批处理文件写法。
要求:显示去掉点的扩展名,会做第一题也可以亮出代码。
方法不限。
评分:代码可读性 1 分;
首个新方法 5 分,第二个 4 分,依次类推,最少 2 分;
一人可多种方法,新方法追加 3 分,已经出现过的方法追加 1 分。
作者: tireless 时间: 2008-12-4 22:17
- @echo off
- (for /f "delims=." %%a in ("%~x1") do echo %%a) || echo 无扩展名
- pause
复制代码
作者: nomyself 时间: 2008-12-5 16:13
试下手- @echo off
- set a=%~x1
- set b=%a:~1%
- if not %~nx1==%~n1 (echo %b%) else echo 无扩展名
- pause
复制代码
作者: sylovanas 时间: 2008-12-5 16:46
- @IF NOT DEFINED DEBUG @ECHO OFF
- SETLOCAL ENABLEDELAYEDEXPANSION
- IF "%~X1"=="" ( ECHO 无扩展名 ) ELSE (
- SET "VAR=%~X1"
- ECHO !VAR:~1!
- )
复制代码
作者: pusofalse 时间: 2008-12-5 20:00 标题: 过来凑热闹~
- @echo off
- set "var=%~x1%%无扩展名"
- call echo %var:~1,4%
- pause
复制代码
[ 本帖最后由 pusofalse 于 2008-12-5 22:21 编辑 ]
作者: keen 时间: 2009-3-31 10:06
- @echo off
- set /p a=请将文件拖放到这里:
- call :1 %a%
- pause &exit
- :1
- set b=%~x1
- set c=%b:~1%
- if not "%b%"=="" (echo %c%) else (echo 无扩展名!)
复制代码
[ 本帖最后由 keen 于 2009-3-31 10:15 编辑 ]
作者: keen 时间: 2009-3-31 10:20
简洁一下:- @echo off
- set b=%~x1
- set c=%b:~1%
- if not "%b%"=="" (echo %c% &pause) else (echo 无扩展名!&pause)
复制代码
作者: tyc 时间: 2009-4-5 11:20 标题: try
- @echo off
- set a=%~x1
- if defined a (echo %a:.=%) else echo 没有扩展名
- pause>nul
复制代码
作者: zhouyongjun 时间: 2009-4-11 13:41
- @echo off
- cd %1 2>nul||(call :file %1&pause&exit)
- for /r "%~1" %%a in (*.*) do call :file "%%~a"
- pause&exit
- :file
- (for /f "delims=." %%i in ("%~x1") do echo %%i)||echo 无扩展名
- goto :eof
复制代码
作者: tireless 时间: 2009-4-11 14:56
- @echo off
- set var=无扩展名%~x1
- echo %var:*.=%
- pause
复制代码
作者: 唯尘 时间: 2024-2-1 15:20
@echo off
for /f "tokens=2 delims=." %%a in ("%~nx1") do if not "%~nx1"=="%~x1" echo %%a
pause>nul
作者: 唯尘 时间: 2024-4-24 08:37
@echo off
set var=%~x1
echo %var:~1%
pause>nul
作者: 唯尘 时间: 2024-5-6 14:45
@echo off
set var=%1
if exist %~1\ (echo 您选择的是一个文件夹) else (echo 文件扩展名是 %~x1)
pause>nul
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |