【问题标题】:How to write a directory listing to a text file on Windows?如何将目录列表写入 Windows 上的文本文件?
【发布时间】:2020-01-26 23:27:28
【问题描述】:

我有一个包含 40,000 多个视频文件的文件夹。

我希望能够将它们全部列在一个文本文件中

我已经使用了命令:

@echo off
set dirpath=%location
dir %dirpath% /-p /o:gn > "%dirpath%\DirContents.txt"
exit

但是,这只是列出了 cmd 中的目录命令。

我希望能够做到这一点:有一个文本文件:

File Name, Date Modified 

【问题讨论】:

  • 什么是/-pDIR at SS64 没有提到它,这几乎是我找到的 CMD 的最佳参考。
  • 另外,你究竟得到了什么,你想看到什么。 (此外,PowerShell 解决方案是否可以接受?)
  • 是的,请展示你得到的和你想要的。
  • 运行此命令得到的输出与使用 -p 在 cmd 中执行 dir 完全一样,我稍后在记事本上填充它。
  • 顺便说一句:-1 表示非常糟糕的问题标题...

标签: file batch-file cmd scripting notepad


【解决方案1】:
import glob
import os
import time

with open("DirContents.txt","w") as fOut:
    fOut.write("FileName, DateModified\n")
    files = glob.glob("~/Videos/*")
    for fName in files:
        stat = time.ctime(os.stat(fName).st_mtime)
        fOut.write("\""+ fName + "\", \"" + stat+"\"\n")

【讨论】:

  • 这是什么语言?它绝对不是CMD 的批处理语言,它不是 PowerShell,它看起来既不像 VBScript 也不像 JScript。
  • 对不起。那是蟒蛇。我会尽快提交一个批处理文件。
  • 你可以使用 forfiles 指令。
【解决方案2】:

这很容易使用 PowerShell 完成。如果您使用的是受支持的 Windows 版本,它将具有 PowerShell。

在 cmd.exe shell 中运行它。

SET "LOCATION=C:\src\t"
powershell -NoLogo -NoProfile -Command ^
    "Get-ChildItem -Path %LOCATION% |" ^
        "ForEach-Object { '{0},{1}' -f @($_.Name, $_.LastWriteTime) }"

如果您可以在没有 cmd.exe 的情况下使用 PowerShell,那就更容易了。在 PowerShell shell 中运行它。

$Location = 'C:\src\t'
Get-ChildItem -Path $Location |
    ForEach-Object {'{0},{1}' -f @($_.Name, $_.LastWriteTime)} |
    Out-File -FilePath "$Env:USERPROFILE\Desktop\DirContents.txt" -Encoding ascii

如果您只想坚持旧方法,请在 cmd.exe shell 中运行它。

FORFILES /P C:\src\t /M *.txt /C "cmd /c ECHO @file,@fdate @ftime"

【讨论】:

  • 您好我已经尝试了所有 3,它不起作用。第一个给出错误 At D:\Location\checkDir.ps1:3 char:40 + "Get-ChildItem -Path %LOCATION% |" ^ + ~ 表达式或语句中出现意外标记“^”。 + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : UnexpectedToken 然后第二个不将文件输出到文本文件,最后一个只是给出了日志的日期和时间
  • 如果你能告诉我我做错了什么,我将不胜感激
  • @JakePearson - 我猜第一个代码是在 PowerShell shell 中运行的。它被编写为在 cmd.exe shell 中运行。我正在修改 PowerShell 代码以写入文件。我不会把它写在与文件相同的目录中。
猜你喜欢
  • 2022-07-13
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 2011-02-23
相关资源
最近更新 更多