如何设置%%~nm
变量的值。[ie] 当我尝试将其设置为喜欢Set "var=%%~nm"
并回%var%
显 .Output 给出空字符串
时,对于所有具有 .Output 的值,我都面临这个问题~
。请提供解决方案。
问问题
284 次
2 回答
2
试试这个(没有新变量不能在同一个for循环中使用delayed expansion
:
for %%m in (*) do call:doit "%%~nm"
goto:eof
:doit
set "var=%~1"
echo %var%
goto:eof
于 2013-07-04T16:03:04.500 回答
0
echo %var%
for
在循环外使用时应该可以正常工作。当您想在循环内回显变量时for
,您必须启用延迟扩展并使用!var!
(变量在运行时扩展)而不是%var%
(变量在解析时扩展):
@echo off
setlocal EnableDelayedExpansion
for %%m in (*) do (
set "var=%%~nm"
echo !var!
)
echo %var%
endlocal
如果要将变量与字符串进行比较,则必须将两者都放在引号之间或不放在引号中:
if %var%==string ...
或者
if "%var%"=="string" ...
否则你会比较string=="string"
,这显然是不相等的。
于 2013-07-04T14:07:07.887 回答