【问题标题】:Shell script hash tableShell 脚本哈希表
【发布时间】:2013-07-26 20:58:22
【问题描述】:

我正在尝试将 .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
)

我不确定这里发生了什么,或者如何处理它? 有什么建议么?或者好的在线参考页面我可以看看?

【问题讨论】:

    标签: shell batch-file hashtable


    【解决方案1】:

    这是一个很好的参考页面:http://technet.microsoft.com/en-us/library/bb490909.aspx

    故障

    第一个循环将输入视为文件名集。

    • 这会将前 11 个以空格分隔的项目存储在变量 args1 中。

    第二个循环将输入视为文字字符串。

    • 这只是将 12 个空格分隔的项目存储在变量 args2 中。

    最后一个循环将输入视为文件名集。

    • 这将在变量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%
    

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 1970-01-01
      • 2013-09-26
      • 2015-10-25
      • 2019-09-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2013-11-17
      相关资源
      最近更新 更多