比较在批处理中返回不正确的值

时间:2013-11-06 03:26:42

标签: batch-file

我有代码:

@echo off
set /p dec="Path? "
set patha="C:\Users\%username%\%dec%"
set /a i=2
setlocal EnableDelayedExpansion
:import
if "%i%"=="12" goto loopend
if "!patha:~-%i%,1!"=="." set ext="!patha:~-%i%!"
set /a i=%i%+1
goto import
:loopend
echo %ext%
pause

它遍历代码10次,但当我有它回显"!patha:~-%i%,1!"并且它回显"."时它不会设置ext变量。我做比较错了吗?

1 个答案:

答案 0 :(得分:2)

尽管

,我还是在W7工作愉快
FOR /f %%i IN ("%patha%") DO SET ext="%%~xi"
echo %ext%

似乎会做同样的事情。

也就是说,假设您要提取最后n个字符,以“。”开头......(不清楚)