我正在尝试将.bat文件转换为.sh脚本。几个参数传递给脚本,其中一个是哈希表。代码看起来像......
date /T
time /T
FOR /F "tokens=1-11" %%A IN (%4) DO (
set args1=%%A %%B %%C %%D %%E %%F %%G %%H %%I %%J %%K
)
FOR /F "tokens=12" %%A IN ("%4") DO (
set args2=%%A
)
FOR /F "tokens=12*" %%A IN (%4) DO (
set dummy=%%A
set args3=%%B
)
我不确定这里发生了什么,或者如何处理它? 有什么建议?或者我可以在网上查看好的参考页面?
答案 0 :(得分:1)
这是一个很好的参考页面:http://technet.microsoft.com/en-us/library/bb490909.aspx
第一个循环是将输入视为文件名集。
args1
中存储前11个以空格分隔的项目。第二个循环是将输入视为文字字符串。
args2
中存储12个以空格分隔的项目。最后一个循环是将输入视为文件名集。
args3
中的第12个项目之后存储所有剩余的空白分隔项目。我建议在每个循环后添加echo
命令,这样你就可以看到解析后的值是什么样的。
FOR /F "tokens=1-11" %%A IN (%4) DO (
set args1=%%A %%B %%C %%D %%E %%F %%G %%H %%I %%J %%K
)
echo %args1%
FOR /F "tokens=12" %%A IN ("%4") DO (
set args2=%%A
)
echo %args2%
FOR /F "tokens=12,*" %%A IN (%4) DO (
set args3=%%B
)
echo %args3%