2

我正在尝试创建一个 CSV,其中包含数据服务器所有硬盘驱动器中所有 txt 和 html 文件的完整路径\文件名、文件所有者和最后一次写入访问权限(修改日期)。

这是我到目前为止得到的:

set pgm=%~n0
set log=%~dpn0.log
set host=%COMPUTERNAME%
set csv=%host%.csv
set dir=D:\BME

if not exist "%csv%" type nul>"%csv%"
    for /f "delims=;" %%a in ('dir /b/s %dir%\*.txt, %dir%\*.html') do (
    >>%csv% echo "%%a"
)

这会在 CSV 中输出某个文件夹的所有找到的 txt 和 html 文件的路径 + 文件名。我试过这个命令来获取硬盘:

wmic logicaldisk where drivetype=3 get caption

但是我不知道如何将其存储在变量或文件中并循环遍历它,还检索所有者和最后修改日期并将其放入 csv 文件的新列中。

4

2 回答 2

1
于 2016-08-21T10:44:01.267 回答
1

我不知道如何将其存储在变量中

使用以下批处理文件。

GetDrives.cmd:

@echo off
setlocal enabledelayedexpansion
rem skip=1 to remove the header
rem findstr to remove blank lines
for /f "skip=1" %%d in ('wmic logicaldisk where drivetype^=3 get caption ^| findstr /r /v "^$"') do (
  set _drive=%%d
  echo !_drive!
  )
endlocal

笔记:

  • 使用时要小心,drivetype=3因为我有一个类型为 的可移动驱动器3。下面的输出C:是一个固定硬盘,F:是一个可移动的外部 USB 驱动器。
  • 适当替换echo !_drive!为现有代码的修改版本。

示例输出:

F:\test>GetDrives
C:
F:

F:\test>

延伸阅读

于 2016-08-19T10:26:03.317 回答