Batch file 文件名和路径提取-多个文件夹
我在驱动器中有一组文件夹,需要提取具有相似名称的所有文件的路径和文件名(即,Batch file 文件名和路径提取-多个文件夹,batch-file,cmd,Batch File,Cmd,我在驱动器中有一组文件夹,需要提取具有相似名称的所有文件的路径和文件名(即,index_lms.htm或index*.htm)。我需要这些进入一个csv文件,我将在一个大批量上传模板操作和使用。这可以通过cmd shell或批处理文件实现吗?(我已经有一段时间没有写这些了。) 今天任务的规模变得更大了。。。。。。。我现在有1000门英语课程,还有德语、土耳其语和俄语的翻译版本。所以我真的需要一个批处理解决方案来提取这些路径名-谢谢 另一个问题出现在文件名不能有空格,我看到他们所有人的文件名中都有
index_lms.htm
或index*.htm
)。我需要这些进入一个csv文件,我将在一个大批量上传模板操作和使用。这可以通过cmd shell
或批处理文件实现吗?(我已经有一段时间没有写这些了。)
今天任务的规模变得更大了。。。。。。。我现在有1000门英语课程,还有德语、土耳其语和俄语的翻译版本。所以我真的需要一个批处理解决方案来提取这些路径名-谢谢
另一个问题出现在文件名不能有空格,我看到他们所有人的文件名中都有多个空格。在读取路径/文件名时,这是否易于编辑
快速回答Gung-文件加载到LMS系统中,电子学习的目标文件通常为index.html或index_LMS.html或index_html5.html。然而,LMS也提供文档(我的最新版本),在我的例子中,它们都是pdf格式,具有标准命名约定这将创建文件out.csv。替换您自己的dir模式匹配
del 2>nul out.csv
for /f "delims=" %%f in ('dir/s/b c:\index*.htm') do <nul set /p =%%f,>>out.csv
del 2>nul out.csv
对于/f“delims=“%%f in('dir/s/b c:\index*.htm')do>out.csv
此批处理将迭代给定的文件夹,并递归搜索它们以索引开头的任何文件,并创建带有标题和列file、Path和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
这里是在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"
我的解决方案是
find[topdir]-键入f>filename
,然后通过filename
搜索您想要的内容。在DOS/Windows中,我认为dir/s[topdir]
做了类似的事情。我可能误解了这个问题。您对“相似”的定义是什么?您是否有一个具体的名称列表,如“索引”、“测试”、“dskspc”等。?你希望剧本能确定什么是“相似的”吗?我刚刚运行了这一套,我工作得非常完美。你绝对是个明星!如果你发现有帮助的答案,你应该考虑和/或