如何使用dos命令执行以下操作

时间:2009-09-14 12:41:46

标签: windows dos

在以下位置 \ ncsusnasent02.na.jnj.com \ its_diq_na_win_dev \的PowerCenter \ infa_shared \ WCPIT_BIO_EDW \ SrcFiles \ DDDMD \ DDD.CLI026.WK0933.DDDMR45.001.head

我有一个文件 DDD.CLI026.WK0933.DDDMR45.001.head

如果我打开这个文件 我得到如下数据(在一行中)

HEADER0101IMS HEALTHDMD Weekly   D        DD.CLI026.WK0933.DDDMR45         Centocor    DMDDRM45               W2009080210120090831125325ssnyder@us.imshealth.com      
    TRAIL0101 000000000581                         0000000000CKSUM000002236804730

我们需要从这个文件

复制581(它不会每天都更新)

并将其放入变量

3 个答案:

答案 0 :(得分:3)

您可以尝试下面的内容。它会将字段设置为环境变量id

 for /f "tokens=10" %%a IN (%1) do (
   SET id=%%a
 )
 echo %id%

您可以将完整路径和文件名作为第一个参数传递给bat。

编辑:

这个简单的bat将从您在命令行(param %1)上指定的文件中获取输入,它将使用<space><tab>的默认分隔符来打破您的文件 - 在IN集中定义 - 成为一组令牌。 "tokens=10" param告诉处理器将第10个令牌(原来是您的号码)传递到DO块中。它作为参数传递%%a。在DO块中,我只是将该值分配给环境变量idfor命令完成后,我将值回显给控制台。

答案 1 :(得分:0)

查看the FOR command,特别是有关/ F参数的部分。

我不确定该行的结构是否甚至尝试编写完整的命令,但是你应该能够自己编写这些信息。

答案 2 :(得分:0)

对我来说,看起来更像是那个人需要一个dos substr ...即

@Echo Off

If not %1.==[]. (Cmd /V:On /C Call %0 [] %1 & GoTo :EOF)

Shift
Set MyVariable=HELLOWORLD
Set ASubStr=!MyVariable:~%1!
Echo [!ASubStr!]

例如,将此保存为test.bat,然后调用“test.bat 5”,它将回显WORLD

Google DOS Substring并找出如何按照您希望的方式解析文本变量。