Войти

Показать полную графическую версию : Есть необходимость создать для каждой папки файл с содержимым папки


Super_Kolobok
01-11-2013, 12:51
Есть куча папок, нужно создать для каждой папки текстовый файл (у которого имя будет такое же как и у папки) со списком файлов, в первой строке текстового файла нужно вписать число файлов в папке.

Папка1
Файл11
Файл12
Файл13

Папка2
Файл21
Файл22

Папка3
Файл31
Файл32
Файл33
Файл34

Нужно получить файлы с таким содержимым в UTF8
Папка1.тхт :
3
Папка1/Файл11
Папка1/Файл12
Папка1/Файл13

Нашел вот такой скрипт

@echo off
chcp 65001>nul
set name=%~1
if "%~1"=="" set /p name=Enter file name:
echo Please wait...
set ind=0
:next
set /a ind+=1
set tmp=
for /f "delims=\ tokens=%ind%" %%a in ("%~dp0") do set tmp=%%a
if not "%tmp%"=="" goto next
set /a ind-=1
if exist %name% del %name%
for /f "delims=\ tokens=%ind%*" %%a in ('dir *.mp3 /b /s') do echo %%b >> %name%

Делает то, что надо но в один файл, а мне надо по отдельности + количество файлов в папке в первую строку

Спасибо

sunnykey
01-11-2013, 14:42
$TargetFolder="F:\ADB"
gci $TargetFolder | ? {$_.PsIsContainer -eq $true} | % {
$CurDir=$_.FullName
gci $CurDir | ? {$_.PsIsContainer -eq $false} | % {
$ShortCurDirName=Split-Path $CurDir -Leaf
$ShortCurDirName+"\"+$_.Name.ToString() | Out-File ($TargetFolder+"\"+$ShortCurDirName+".txt") -Encoding utf8 -Append
}
}

Kazun
01-11-2013, 16:29
PowerShell:
Get-ChildItem Folder -Directory | Foreach {
$f = $_.GetFiles() | Foreach {$_.Directory.Name + "/" + $_.Name}
$f.count,$f | Out-File "$($_.FullName)\$($_.Name).txt"
}




© OSzone.net 2001-2012