rsk*_*k82 5 variables command-line windows-xp batch-file
以下是如何使用常规变量执行此操作的示例:
SET _test=123456789abcdef0
SET _result=%_test:~-7%
ECHO %_result%
:: that shows: abcdef0
Run Code Online (Sandbox Code Playgroud)
但是如果在开始时使用双百分比的变量(如%%A),那么for循环中需要这样的变量:
FOR /D %%d IN (c:\windows\*) DO (
echo %%d
)
Run Code Online (Sandbox Code Playgroud)
这有效,但是:
FOR /D %%d IN (c:\windows\*) DO (
echo %%d:~-7%
)
Run Code Online (Sandbox Code Playgroud)
只需复制:~-7到echo命令即可
replace和substring语法仅适用于不适用于参数的变量.
但您可以简单地将参数复制到变量中,然后使用子字符串语法.
setlocal EnableDelayedExpansion
FOR /D %%d IN (c:\windows\*) DO (
set "var=%%d"
echo !var:~-7!
)
Run Code Online (Sandbox Code Playgroud)
这里需要延迟扩展,因为正常的%var%会在解析完整块时扩展,而不是在执行时扩展.
或者您可以使用call技术,但这非常慢并且有许多副作用.
FOR /D %%d IN (c:\windows\*) DO (
set "var=%%d"
call echo %%var:~-7%%
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |