Board logo

标题: [文件操作] 【已解决】BAT脚本怎样批量提取文件夹内文件的名称? [打印本页]

作者: 星空独子    时间: 2019-11-29 09:27     标题: 【已解决】BAT脚本怎样批量提取文件夹内文件的名称?

本帖最后由 星空独子 于 2019-12-2 14:51 编辑

文件夹内的文件有规律的命名,将文件名导入excel中的同时,使文件名按空格进行断开,分别加入到不同的列,空格从第二个开始计算。
比如:文件名叫:RRP 58007 C 未授权 目视检查
希望excel中出现这样:
序列号              文件编号              版本              授权/加密              文件名               路径              备注
   1               RRP 58007              C                  未授权               目视检查              C:\
   2               ISO 9001                A                  已授权            质量认证体系            D:\
   .
   .
   .
作者: Batcher    时间: 2019-11-29 16:16

回复 1# 星空独子


假设你这些文件都是txt文件:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. >"结果.csv" echo 序列号,文件编号,版本,授权/加密,文件名,路径,备注
  5. (for /f "delims=" %%a in ('dir /b /s /a-d *.txt') do (
  6.     set /a n+=1
  7.     for /f "tokens=1-5" %%h in ("%%~na") do (
  8.         echo !n!,%%h %%i,%%j,%%k,%%l,%%~da\
  9.     )
  10. ))>>"结果.csv"
复制代码

作者: flashercs    时间: 2019-11-29 16:18

  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. cd /d "%~dp0"
  4. set "file=导入Excel.txt"
  5. set n=0
  6. (
  7.   echo 序列号,文件编号,版本,授权/加密,文件名,路径,备注
  8.   for /f "tokens=1-5" %%a in ('dir /a /b') do (
  9.     set /a n+=1
  10.     echo "!n!","%%a %%b","%%c","%%d","%%e","%%~dp0",""
  11.   )
  12. )>"%file%"
  13. endlocal
  14. pause
  15. exit /b
复制代码

作者: 星空独子    时间: 2019-11-29 17:52

回复 2# Batcher
代码第八行%%~da要改成%cd%才行,谢谢大神
作者: Batcher    时间: 2019-11-29 20:59

回复 4# 星空独子


    问题解决了就好,根据顶楼给的例子,我也是瞎猜的。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2