[英]Setting value in a variable in batch file
如何將%%~nm
值設置為變量。 [ie]當我嘗試設置它像Set "var=%%~nm"
〜nm Set "var=%%~nm"
和echo %var%
.Output給出空字符串我面臨這個問題所有具有~
值。 請提供解決方案。
試試這個(新變量不能在沒有delayed expansion
的同一個循環中使用:
for %%m in (*) do call:doit "%%~nm"
goto:eof
:doit
set "var=%~1"
echo %var%
goto:eof
在for
循環外使用時, echo %var%
應該可以正常工作。 當你想在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"
,這顯然是不相等的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.