2014-11-03 3 views
0

У меня есть текстовый файл, который содержит:DOS Batch: удалить символы из строки в цикле

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

Эти строки включают в себя как ведомые пробельные и двойные кавычки.

Я хочу, чтобы удалить их, используя для цикла:

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

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' вообще не изменены ... Окно оболочки говорит:' D: \ file.txt> wiltomap

Смежные вопросы