很多問題批處理編碼...事情似乎沒有按照我期望的方式工作。批處理文件爲/ f isnt讀取文件
所以我使用批處理文件從.as文件中提取文本數據。我設法讓它工作但是它創建了一堆垃圾/空txt文件,沒有從中提取任何有用的內容。所以我做了另一個從main.bat調用的批處理文件,並且應該清理空文件,但即使main.bat中的for循環幾乎相同,變量也是不正確的。
的問題是代碼的位下方(摘自的clean.bat線33)#note下面的代碼有大部分的櫃檯和回聲去除
@echo off cls setlocal enabledelayedexpansion for /r %%Z in (*.txt) do ( SET /a count=0 for /F "eol= tokens=1 delims=," %%A in ("%%Z") do ( if /i %%A==LN set /a count+=1 ) if !count! EQU 0 ( rem del "%%Z") ) pause
在此代碼中%% A和%% Z都等於應從中讀取的文件的完整文件路徑。當%% A應該是有問題的txt文件的標記1時。由於這個計數總是= 0,所以它總是刪除文件(這就是爲什麼del被註釋掉)。
這裏的文件的一個例子其應該從 LN,296,textE("海沿いに立つ高級フィットネスリゾート施設。"); LN,299,textE("夏休み、俺たち兄妹は、陸上の強化合宿という「名目」のもと、\nこの施設を訪れていた。"); LN,302,textE("莉 央\nすごい、すごい!!おしゃれなところだねー!");
基本上它應該檢查每一行讀,如果LN犯規作爲第一令牌將其刪除該文件的任何線存在。 (因爲這意味着該文件是除了原始。作爲文件的線數爲空)
雙引號在'爲/ F'循環處理字符串使用。要運行文件的內容,不要使用任何引號。將(%% Z)do'中的'%% A更改爲'%% A(%% Z)do'。 – SomethingDark
...或在'for'選項列表中添加'usebackq'選項。如果文件名可能包含空格,則這是必需的。 – Aacini
@SomethingDark您的解決方案不處理文件名\路徑中的空格等,Aacini的建議可以解決這個問題。 – foxidrive