在以下位置 \ 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(它不会每天都更新)并将其放入变量
答案 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
块中,我只是将该值分配给环境变量id
。 for
命令完成后,我将值回显给控制台。
答案 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并找出如何按照您希望的方式解析文本变量。