我試圖從.LOG文件中抓取文件名並將其附加到文件中每行的開頭,sans擴展名之間的空格文件名和行內容。文件夾中有許多這樣的文件,並且應該爲文件夾中的每個.LOG文件執行腳本。示例文件名看起來是這樣的:批處理腳本抓取文件名並添加到每行的開頭
20160201.log
我想要的文件名添加到每個文件中的線,像這樣的:
00:00:23 Left 4EEFD9 6.59418mA 0.00003mA OK
00:00:23 Right 4EEFEF 6.85377mA 0.00001mA OK
00:00:44 Left 4EEFDC 6.32207mA 0.00004mA OK
爲了讓這樣的結果:
20160201 00:00:23 Left 4EEFD9 6.59418mA 0.00003mA OK
20160201 00:00:23 Right 4EEFEF 6.85377mA 0.00001mA OK
20160201 00:00:44 Left 4EEFDC 6.32207mA 0.00004mA OK
我看到這個問題here但它引用從文件名列表拉一個文件名,並分別在每個條目的開始放置,這樣就不會爲我工作。我也看過this question,但是因爲我需要使用文件名而不是我當前的系統時間,所以這也不起作用。我沒有任何代碼可以提供......我無法從我發現的問題中使用任何確鑿的結論,而且我對批處理腳本完全陌生。
編輯1:脫線的代碼
這裏是我試圖用脫線的答案(注意註釋是我除了用於故障排除)運行當前代碼:
@ECHO Off
SETLOCAL
SET "sourcedir=C:\Users\ckemmann\Desktop\Current"
SET "destdir=C:\Users\ckemmann\Desktop\Current\New"
::echo %sourcedir% <I check what I've assigned to sourcedir.
::echo %destdir% <And to destdir.
::pause
FOR %%f IN ("%sourcedir%\*.log") DO >"%destdir%\%%~nf.out" (
FOR /f "usebackqdelims=" %%a IN ("%%f") DO (
ECHO %%~nf %%a
)
)
::pause <I catch the batch script telling me that the system cannot find the path specified.
GOTO :EOF
如圖所示在代碼中,我收到了來自Windows的投訴,稱它無法找到文件路徑...即使這是我從文件夾屬性中複製的文件路徑。
編輯2:
由於我沒有聽到回我的編輯1我去Arescet的答案。我可惜似乎沒有辦法解決劇本的緩慢問題。我的最終代碼與他在答案中提供的代碼相同。
您是否提供了文件名,或者應該自動檢測,還是從Alpha Centauri傳入? – Magoo
@Magoo - 你是指供應?我有一個包含這些.LOG文件的文件夾,我希望.bat腳本抓住每個文件的文件名,打開文件,將文件名w/o擴展名添加到每行的開頭,然後再關閉它。我將澄清這個問題以配合這個評論。 – ckemmann
Magoo的答案可能會更快,因爲我有一個'ren'和一個'del'命令,但最後我們都有類似'echo%stuff%> endFile.log',正如我所提到的是罪魁禍首'slowness' – Bloodied