Как записать список каталогов в текстовый файл в Windows? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть папка, содержащая более 40 000 видеофайлов.

Я хочу иметь возможность перечислить их все в текстовом файле

Я использовал команду:

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

Однако, это просто список команды каталога, которая указана в cmd.

Я хочу иметь возможность сделать это: иметь текстовый файл, который имеет:

File Name, Date Modified 

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Это легко сделать с помощью PowerShell.Если вы используете поддерживаемую версию Windows, она будет иметь PowerShell.

Запустите ее в оболочке cmd.exe.

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

Если вы можете использовать PowerShell без cmd.exe, онаеще проще.Запустите это в оболочке PowerShell.

$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.

FORFILES /P C:\src\t /M *.txt /C "cmd /c ECHO @file,@fdate @ftime"
0 голосов
/ 26 сентября 2019
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")
...