我試圖使用Windows批處理FOR command。Windows批處理命令選項卡分隔符
如何將TAB字符指定爲分隔符?默認值是空格和製表符,但我只想要製表符。
我已經試過這一點,但它不工作:
FOR /F "tokens=3 delims=^T" %i in (test.txt) do @echo %i
這似乎是在T字而不是製表分裂。我也嘗試將一個文字粘貼到命令提示符中,但我得到一個語法錯誤。
我試圖使用Windows批處理FOR command。Windows批處理命令選項卡分隔符
如何將TAB字符指定爲分隔符?默認值是空格和製表符,但我只想要製表符。
我已經試過這一點,但它不工作:
FOR /F "tokens=3 delims=^T" %i in (test.txt) do @echo %i
這似乎是在T字而不是製表分裂。我也嘗試將一個文字粘貼到命令提示符中,但我得到一個語法錯誤。
您需要帶引號的選項字符串中的文字選項卡字符。字面TAB既可以在批處理文件中執行,也可以在命令行中執行。
如果您試圖在命令行中鍵入TAB,則文件名完成可能會阻礙您的工作。您可以使用CMD /F:OFF
禁用名稱完成。然後你將能夠輸入一個字面的TAB字符。
根據您使用的文本編輯器,您還可能遇到嘗試將TAB輸入批處理腳本的問題。一些程序員的編輯器具有自動將TAB轉換爲空格的設置。你需要確保你的編輯沒有這樣做。
所以,你只需要改變你的"tokens=3 delims=^T"
字符串使用文字而不是^T
根據這個網站http://ss64.com/nt/for_f.html,默認分隔符是一個選項卡,所以嘗試它沒有delims參數。
它似乎是一個文字標籤字符確實工作,但您必須啓動cmd
進程/F:ON
。沒有這一點,即使粘貼在製表符中也不起作用。
文字選項卡在批處理文件中正常工作。如果您想在命令行中輸入TAB文字,您實際上需要CMD/F:OFF。 – dbenham
Ngaaa一個TAB ..談了一個下午頭痛...
今天我有同樣的問題...我需要用FOR/F解析行,其中每行 是多個句子(每個句子都有嵌入的空格),而每個句子 由TAB分隔。
我的問題是我公司的編碼標準(甚至批處理文件)禁止 實際TAB字符從源代碼是(我們的編輯禁止將製表符 中,我們的版本CTRL工具禁止任何文本文件中的任意簽入關於製表符 或WTR [白到最合適的。)
所以,這是一個黑客,但它適用於XP(掛頭......深深的恥辱......)
SET REG_CPU="HKLM\Hardware\Description\System\CentralProcessor\0"
REG.EXE QUERY %REG_CPU% /V IDENTIFIER | FIND "REG_SZ" > RegCPUid.Tmp
for /F "tokens=2 delims=rR" %%i in (RegCPUid.Tmp) do SET TAB=%%~i
這適用於XP,但我沒有選擇Win7或Win7 [WoW64]。
RegCPUid.Tmp的臨時內容是一條線,它看起來像
" IDENTIFIER<tab>REG_SZ<tab>x86 Family 6 Model 37 Stepping 2"
for命令簡單地拔除了寂寞TAB 標識符的兩個「R」 S和REG_SZ和套之間環境變量TAB。
然後我的腳本就可以完成所有的FOR/F循環就是了,只有標籤 字符作爲分隔符(而不是空格)......
for /F "tokens=1-3* delims=%TAB%" %%i in (Sentences.txt) do ECHO The THIRD sentence is %%k
所有這一切都讓我不要BATCH文件中有任何硬編碼的製表符字符。
-dave
你在哪裏看到的?它說默認是 –
jterrace
jterrace是正確的,默認是''。只需從命令行鍵入HELP FOR'並閱讀DELIMS選項的描述。 –
dbenham