2014-11-03 79 views
0

我有一个包含一个TXT文件:DOS批处理:从字符串中删除字符在for循环

C086002-B3116 
C086014-T1234 
C086014-T1325 
C086014-T1375" 
C086014-T1374" 

这些字符串包括尾部空格和双引号。

我想删除这些使用FOR循环:

for /f %%a in (file.txt) do (
    set str=%%a 
    set str=%str: =% 
    set str=%str:"=% 
) 

壳牌窗户被打开,并立即关闭了,并没有什么在弦上做...非常感谢您对这个操作的帮助。

回答

1

你必须激活一个变量的多个变化的延迟扩展在FOR循环

像这样:

@echo off 
setlocal enabledelayedexpansion 
for /f "delims=" %%a in (file.txt) do (
    set str=%%a 
    set str=!str: =! 
    set str=!str:"=! 
    echo !str! 
) 

如果您需要在文件中输出:

@echo off 
setlocal enabledelayedexpansion 
(for /f "delims=" %%a in (file.txt) do (
    set str=%%a 
    set str=!str: =! 
    set str=!str:"=! 
    echo !str! 
)) >output.txt 
+0

就是这样!非常感谢... – wiltomap 2014-11-03 12:16:06

1
set str= C086014-T1374" 
echo.%str% 
set str=%str:"= % 
echo.%str%. 
set str=%str: =% 
echo.%str%. 

这是一个你必须放在循环体中的例子。 set str=%str:"= %替换"set str=%str: =%删除空格。

你可以找到更多的字符串操作here

+0

谢谢,但我仍然有问题,我的文件中的字符串'file.txt'完全没有修改... shell窗口说:'D:\ file.txt>'对于'file.txt'中的每个值。 – wiltomap 2014-11-03 10:22:04