2017-07-17 66 views
1

我在驅動器中有一組文件夾,需要提取所有具有相似名稱的文件(即index_lms.htmindex*.htm)的路徑和文件名。我需要這些進入一個csv文件,我將操縱和使用一個批量上傳模板。這是可能通過cmd shell或批處理文件? (它一直以來我試着寫這一段時間。)任務的文件名和路徑提取 - 多個文件夾

今天的規模變得更糟.......我現在有1000門英語課程,並在德國,土耳其和俄羅斯的翻譯版本。所以我真的需要一個批處理解決方案來提取這些路徑名 - 謝謝。其他

一個問題在文件名出現不能有空格,我看到所有的人都在其文件名的多個空格。這是很容易編輯的路徑/文件名被讀取?

快速回答呱 - 將文件加載到LMS系統和電子學習目標文件通常是index.html或index_lms.html或index_html5.html。然而,LMS也提供文件(我當前的問題)在我的情況下,他們都是具有標準命名約定的pdf

+0

我的結果是'find [topdir] -type f> filename',然後grep通過'filename'找到你想要的結果。在DOS/Windows中,我認爲'dir/s [topdir]'做了類似的事情。我可能會誤解這個問題。 – barrycarter

+0

您對「類似」的定義是什麼?你有名稱,如「INDEX_」,「TEST_」,「dskspc_」等的具體列表?你是否期望腳本確定什麼是「類似的?」 – lit

回答

1

這個批處理會遍歷給定的文件夾和遞歸搜索他們索引開頭的所有文件,並創建一個標題和列文件,路徑和PathFile一個CSV文件。

@Echo off 
SetLocal EnableExtensions 
(Echo "File","Path","PathFile" 
    For %%A in (
    "X:\Test\" 
    "Y:\Home\Customer\" 
    "Z:\Users\UserName\" 
) Do Call :Search "%%~A" 
) > "%~dpn0.csv" 
Goto :Eof 
:Search 
For /R %1 %%B in (index*.htm*) Do Echo "%%~nxB","%%~dpB","%%~fB" 

輸出文件將具有相同的驅動器,路徑和名稱爲批處理文件,但擴展.csv

+0

我只是跑這一套,我的工作就像一個夢 - 完美。你是絕對的明星! – TonyW

+0

如果您發現有用的答案,你應該考慮到[接受答案】(http://stackoverflow.com/help/accepted-answer)和/或[投票了(https://stackoverflow.com/help/why -投票) – LotPings

0

這將創建文件out.csv。替換您自己的目錄模式匹配。

del 2>nul out.csv 
for /f "delims=" %%f in ('dir/s/b c:\index*.htm') do <nul set /p =%%f,>>out.csv 
0

這裏是另一種方式來做到這一點在PowerShell中。

PS C:\src\t> type .\f2csv.ps1 
$dirs = 'C:\src\t', 'C:\labs' 

foreach ($dir in $dirs) { 
    Get-ChildItem -File '*.txt' -Recurse | 
     Select-Object @{Expression={$_.FullName}; Label="filename"} | 
     Export-Csv -Path '.\f2csv.csv' -Delimiter ',' -NoTypeInformation 
} 
PS C:\src\t> .\f2csv.ps1 
PS C:\src\t> type .\f2csv.csv 
"filename" 
"C:\src\t\iosloginfo\lognextnum.txt" 
"C:\src\t\t\file1.txt" 
"C:\src\t\t\file10.txt" 
"C:\src\t\t\file2.txt" 
相關問題