2011-03-16 38 views
0

我刚刚通过一个开始的批处理器(可能更像是一个屠夫),并且一直在与此战斗太久(我发现了一些建议并尝试了它们,似乎使它们中的任何一个都可以工作 - 可能是UE)。我有一个看起来像我有一个批处理文件(dir_list.txt)建立在Windows 2003机器上的文件:在Windows 2003中删除批处理程序中的双引号

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

我想去掉双引号。预先感谢您的帮助。

回答

0

可能:

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

没有也许关于它......谢谢。 – jim 2011-03-16 16:54:50

1
@echo off 

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

更新: bobbogo的建议后修改。

更新2:编辑考虑尾随空格。

+0

烦人之前'>>那空间'将使它成为'new_dir_list.txt'。你需要'呼应%%〜Ĵ>> new_dir_list.txt'。叹。 – bobbogo 2011-03-16 16:39:43

+0

你说得对。更正了我的帖子,谢谢:) – adarshr 2011-03-16 16:48:58

+0

这似乎很好地删除了领先的“但不是最后一个?我认为可能有尾随空格,对不起,离开了那个出来 – jim 2011-03-16 16:57:44

2

搜索“for”命令的帮助,答案接近帮助的底部。 %%〜我会自动去除报价。如果在引用的文字空间,您将需要使用“令牌= *”捕捉引号将整个字符串。希望这可以帮助。

@echo off 

for /f "tokens=*" %%i in (x) do echo %%~i 
相关问题