2011-03-16 69 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 
相關問題