批处理笔记(14) - 路径/时间/字符切分等DEMO操作

本篇熟悉操作文件路径、时间,温习字符切分(Delims)。

路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
@REM @Author: xianghongai@gmail.com
: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

时间

1
2
3
4
5
6
7
8
9
10
@echo off
@REM @Author: xianghongai@gmail.com
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

字符切分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
@echo off
@REM @Author: xianghongai@gmail.com

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

(本篇结束)

许可协议:自由转载-保持署名-非商业性使用-禁止演绎 (CC BY-NC-ND 4.0)

By 小可 from https://xinlu.ink/tech/batch-in-action-14-delims.html