Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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 窗口批处理/DOS脚本以删除字符串中的重复字_Windows_Batch File_Dos - Fatal编程技术网

Windows 窗口批处理/DOS脚本以删除字符串中的重复字

Windows 窗口批处理/DOS脚本以删除字符串中的重复字,windows,batch-file,dos,Windows,Batch File,Dos,有人能帮我删除Windows批处理/DOS脚本吗 如果字符串是- 测试1测试2测试1测试3测试2测试3 我需要一个脚本显示为 test1 test2 test3同样,您可以手动执行:获取每个元素,检查它是否已经在输出中,如果没有,则追加它: @echo off setlocal enabledelayedexpansion set "string=test1 test2 test1 test3 test2 test3" set "newstring=" for %%i in (%string%)

有人能帮我删除Windows批处理/DOS脚本吗

如果字符串是-

测试1测试2测试1测试3测试2测试3

我需要一个脚本显示为


test1 test2 test3

同样,您可以手动执行:获取每个元素,检查它是否已经在输出中,如果没有,则追加它:

@echo off
setlocal enabledelayedexpansion
set "string=test1 test2 test1 test3 test2 test3"
set "newstring="
for %%i in (%string%) do (
  echo !newstring!|findstr /i "\<%%i\>" >nul || set "newstring=!newstring! %%i"
)
echo %newstring:~1%
@echo关闭
延迟扩展
设置“string=test1 test2 test1 test3 test2 test3”
设置“新闻字符串=”
对于(%string%)中的%%i,请执行以下操作(
echo!newstring!| findstr/i“\”>num | | set“newstring=!newstring!%%i”
)
回显%newstring:~1%
(注意:如果需要区分大小写,请删除
/i


编辑以处理完整的单词而不是(可能的)子字符串。

有几种方法可以做到这一点;例如:

@echo off
setlocal EnableDelayedExpansion

set "in=test1 test2 tes test1 test3 test test2 test3"


rem 1- Insert the word if it is not in the output already
set "out= "
for %%a in (%in%) do (
   if "!out: %%a =!" equ "!out!" set "out=!out!%%a "
)
echo "%out:~1,-1%"


rem 2- Remove each word from output, then insert it again
echo/
set "out= "
for %%a in (%in%) do (
   set "out=!out: %%a = !"
   set "out=!out!%%a "
)
echo "%out:~1,-1%"

你试了什么?请张贴你的例子嗯。。。您是否仍然使用80/90年代的
DOS
?您的意思是
CMD
-
命令提示符
?如果一个单词作为另一个单词的一部分包含,您的方法将失败;例如:
set“string=test1 test2 tes test1 test3 test2 test3”
。Nor
tes
在输出中既不插入
test
单词,我想通过使用
findstr/i“\”
添加单词边界就可以很容易地修复。