2017-07-17 67 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" 
相关问题