路径/时间/字符切分等操作
本篇熟悉操作文件路径、时间,温习字符切分 (Delims)。
路径
@echo off
@REM @Author: [email protected]
:GTCONTINUE
@echo 正在运行的这个批处理:
@echo 完全路径[%%0]:%0
@echo 去掉引号[%%~0]:%~0
@echo 所在分区[%%~d0]:%~d0
@echo 所处路径[%%~p0]:%~p0
@echo 文件名[%%~n0]:%~n0
@echo 扩展名[%%~x0]:%~x0
@echo.
@echo 文件属性:%~a0
@echo 修改时间:%~t0
@echo 文件大小:%~z0
@echo.
@echo 盘符和路径[%%~dp0]:%~dp0
@echo 文件名和扩展名[%%~nx0]:%~nx0
@echo 当前 CMD 默认目录[%%cd%%]:%cd%
@echo.
set "CurrentDirName=%~dp0"
for /f "delims=" %%i in ("%CurrentDirName:~0,-1%") do (echo 目录名: %%~ni)
pause >nul
goto GTCONTINUE
时间
@echo off
@REM @Author: [email protected]
set varTimeTemp1=%time: =0%
set varTimeTemp2=%varTimeTemp1::=%
set varTime=%varTimeTemp2:~0,6%
set varDate=%date:~0,4%%date:~5,2%%date:~8,2%%varTime%
@echo 当前日期时间:%varDate%
rem %a:~[m[,n]]%
@echo %varDate:~0,4%年 %varDate:~4,2%月 %varDate:~6,2%日 %varDate:~8,2%时 %varDate:~10,2%分 %varDate:~12%秒
pause
字符切分
@echo off
@REM @Author: [email protected]
rem tokens=有时表示提取全部。
rem tokens=m 表示提取第 m 列。
rem tokens=m,n 表示提取第 m 列和第 n 列。
rem tokens=m-n 表示提取第 m 列至第 n 列。
rem tokens=*表示删除每行前面的空格。忽略行首的所有空格。
rem tokens=m*提取第 m 列以后的所有字符,星号表示剩余的字符。
rem tokens=m,*提取第 m 列以后的所有字符,星号表示剩余的字符。
rem delims 指明点号、减号、空格为分割符,默认是空格和 tab 为分割符,delims==及 delims=表示不要分割符
:GTBegin
cls
set str="123,456,789,0,abc-def,ghi,jkl-mno,pqr,stu,vwx,yz"
for /f "delims=" %%i in (%str%) do echo 字符:%%i
@echo.
@echo tokens=1 delims=-
for /f "tokens=1 delims=-" %%i in (%str%) do echo %%i
@echo.
@echo tokens=1,6 delims=,-
for /f "tokens=1,6 delims=,-" %%i in (%str%) do echo %%i %%j
@echo.
@echo tokens=2-6 delims=,-
for /f "tokens=3-6 delims=,-" %%i in (%str%) do echo %%i %%j %%k
@echo.
@echo tokens=6* delims=,-
for /f "tokens=6* delims=,-" %%i in (%str%) do echo %%i %%j
@echo.
@echo tokens=6,* delims=,-
for /f "tokens=6,* delims=,-" %%i in (%str%) do echo %%i %%j
@echo.
pause>nul
goto GTBegin
更新日志:
- 2017-05-28