Ant*_*nyM 13 windows batch-file
我有以下批处理文件
@echo off
setlocal EnableDelayedExpansion
for /f "delims==" %%J in (File_List.txt) do (
call :setDate %%J MYD
echo/Date is: %MYD%
)
endlocal &goto :eof
:setDate
SETLOCAL ENABLEEXTENSIONS
echo %1
echo %~2
set NAME=%1
set NAME=%NAME:~-11%
echo %NAME%
echo %~2
endlocal&set %2=%NAME%&goto :eof
Run Code Online (Sandbox Code Playgroud)
但是File_List.txt包含file2012-05.csv
我明白了
file2012-05.csv
MYD
2012-05.csv
MYD
Date is:
Run Code Online (Sandbox Code Playgroud)
我如何实际获取函数setDate以返回我想要的值?
小智 20
由于我不能从你的脚本中理解你想要实现的目标,我回答(完整性)原始主题:从函数返回一个值.
我是这样做的:
@echo off
set myvar=
echo %myvar%
call :myfunction myvar
echo %myvar%
goto :eof
:myfunction
set %1=filled
goto :eof
Run Code Online (Sandbox Code Playgroud)
结果是:
empty
filled
Run Code Online (Sandbox Code Playgroud)
Eit*_*n T 19
批处理解释器%MYD%在解析时进行评估,并且在那时它是空的.这就是你有延迟扩展的原因.改变这一行:
echo/Date is: %MYD%
Run Code Online (Sandbox Code Playgroud)
对此:
echo/Date is: !MYD!
Run Code Online (Sandbox Code Playgroud)
它会像你想要的那样工作,因为它告诉解释器MYD在运行时进行评估.
| 归档时间: |
|
| 查看次数: |
34258 次 |
| 最近记录: |