Windows 在以下情况下,如何从中获取唯一记录
我试图运行一个脚本,试图从文件中找到一个值。 文件是:Windows 在以下情况下,如何从中获取唯一记录,windows,batch-file,Windows,Batch File,我试图运行一个脚本,试图从文件中找到一个值。 文件是: 8009 [main] INFO com.utilities.task.ICSTask - Submitted run of the task: taskId=0015FL0Z0000000000R6, taskRunId=20789 https://use4.dm-us.com/saas/api/v2/activity/activityLog?taskId=0015FL0Z0000000000R6&runId=20789 我
8009 [main] INFO com.utilities.task.ICSTask - Submitted run of the task: taskId=0015FL0Z0000000000R6, taskRunId=20789
https://use4.dm-us.com/saas/api/v2/activity/activityLog?taskId=0015FL0Z0000000000R6&runId=20789
我写的代码是:
SetLocal EnableDelayedExpansion
@for /f "tokens=2 delims=:," %%i in ('type abc.txt') do (
@set%%i
REM To remove Space into Variable
Set "taskID=!taskID: =!"
echo !taskID! >> def.txt
)
我得到的结果是:
0015FL0Z0000000000R60015FL0Z0000000000R6 因此,我想在
def.txt
文件中获得0015FL0Z0000000000R6
的唯一值。我怎样才能做到这一点
将只有一个taskId,但我得到的是多行。
我想检索与流相同的taskId
您只有一个taskId,但文本文件中有两行,这意味着循环执行两次。由于taskid
不会第二次被覆盖,因此它仍然保留第一次的值
更改。。。在('type abc.txt')中,执行…
至。。。在('type abc.txt^ | find“taskId=“”)中,执行…
以仅将abc.txt
过滤到相关行
还有,你可以echo!taskID!>>def.txt
,它添加了两个尾随空格。为了避免这种情况,我稍微修改了重定向语法
将您的完整代码更改为:
@echo off
SetLocal EnableDelayedExpansion
for /f "tokens=2 delims=:," %%i in ('type abc.txt^|find "taskId=') do (
@set%%i
REM To remove Space into Variable
Set "taskID=!taskID: =!"
>>def.txt echo !taskID!
)
打开一个命令提示窗口,输入%\uuuu AppDir\uuuu%find.exe”/?,读取输出,然后运行%\uu AppDir\uuuu%findstr.exe”/?,并执行相同的操作。根据您的情况选择最合适的命令,如果它无法按预期工作,请相应地更新您发布的脚本,让我们知道。如果要隔离,请澄清可能的重复,1。文件中每个唯一的
taskId
值?2.“提交”行中每个唯一的taskId
值?或3。“URL”行中的每个唯一的taskId
?除了没有任何空格可以删除之外,您稍后可以使用echo
命令来引入它们。@stephan OP在