Удаление двойных кавычек в пакетной программе в Windows 2003

Я только что закончил начинающего дозатора (вероятно, больше похожего на мясника) и слишком долго боролся с этим (я нашел несколько предложений и попробовал их, но, похоже, ни одно из них не работает - вероятно, UE). У меня есть файл на компьютере с Windows 2003, который я создал с пакетным файлом (dir_list.txt), который выглядит так:

"t001wp" 
"w003th" 
"b005ku" 
"k009dp" 
.
.
.
.

Я хочу убрать двойные кавычки. Заранее благодарю за любую помощь.


person jim    schedule 16.03.2011    source источник


Ответы (3)


Найдите в справке команду «для», и ответ находится в нижней части справки. %%~i автоматически удалит кавычки. Если в цитируемом тексте есть пробелы, вам нужно будет использовать «tokens=*», чтобы заключить всю строку в кавычки. Надеюсь это поможет.

@echo off

for /f "tokens=*" %%i in (x) do echo %%~i
person Jeremy E    schedule 28.03.2011

@echo off

for /F "usebackq delims= " %%j in (dir_list.txt) do (
    echo %%~j>> new_dir_list.txt
)

Обновление: отредактировано по предложению bobbogo.

Update2: отредактировано с учетом пробелов в конце.

person adarshr    schedule 16.03.2011
comment
Досадно, что пробел перед >> превратится в new_dir_list.txt. Вам нужно echo %%~j>>new_dir_list.txt. Вздох. - person bobbogo; 16.03.2011
comment
Кажется, это хорошо удаляет ведущий, но не последний? Я думаю, что могут быть конечные пробелы. Извините, что упустил это. - person jim; 16.03.2011
comment
Я думаю, он делает то же самое? Я не вижу изменений (кроме удаленного пробела между j›› )? - person jim; 16.03.2011
comment
@adarshr: Но с delims=‹space› он также разделяет строки пробелами, поэтому вы получаете только one для строки " one two". Вам нужно добавить tokens=*, чтобы удалить только начальные пробелы - person jeb; 16.03.2011
comment
@jim сейчас delims= ", раньше было delims=". @jeb да, ты мог бы это сделать, но я не думаю, что у Джима есть такое требование. - person adarshr; 16.03.2011

Может быть:

type nul>output.txt
setlocal enabledelayedexpansion
for /f %%X in (my_file.txt) DO (
    set line=%%X
    set line=!line:"=!
    echo.!line!>>output.txt
)
person Benoit    schedule 16.03.2011