Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在以下情况下,如何从中获取唯一记录_Windows_Batch File - Fatal编程技术网

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
)
我得到的结果是:

0015FL0Z0000000000R6
0015FL0Z0000000000R6

因此,我想在
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在