所以问题是我会得到如下的文件名:
"a.b.c.d.e.f.g"
我需要得到最后两部分。在这种情况下,
"f.g"
我不知道字符串会有多少个点。
谢谢你的帮助!
答案 0 :(得分:3)
@ECHO OFF
SETLOCAL
SET "fname=a.b.c.d.e.f.g"
FOR %%a IN (%fname%) DO FOR %%b IN (%%~na) DO ECHO %%~xb%%~xa
答案 1 :(得分:2)
试试这个:
@echo off &SETLOCAL
SET "fname=a.b.c.d.e.f.g"
:loop
SET /a t+=1
SET "d="
FOR /f "tokens=%t% delims=." %%a IN ("%fname%") DO SET "d=%%a"
SET "f=%g%"&SET "g=%e%"&SET "e=%d%"
IF DEFINED d GOTO :loop
ECHO %f%.%g%
€:适用于所有分隔符,不仅适用于.
。
答案 2 :(得分:0)
您可以使用%~xI`中的参数修饰符x
来仅访问扩展名,然后再使用它两次。
@echo off
set "fname=a.b.c.d.e.f.g"
for /F "delims=" %%A in ("%fname%") DO (
set "ext2=%%~xA"
for /F "delims=" %%A in ("%%~nA") DO set "ext1=%%~xA"
)
echo %ext1%%ext2%