Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Есть необходимость создать для каждой папки файл с содержимым папки (http://forum.oszone.net/showthread.php?t=271145)

Super_Kolobok 01-11-2013 12:51 2245318

Есть необходимость создать для каждой папки файл с содержимым папки
 
Есть куча папок, нужно создать для каждой папки текстовый файл (у которого имя будет такое же как и у папки) со списком файлов, в первой строке текстового файла нужно вписать число файлов в папке.

Папка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 2245403

Код:

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

PowerShell:
Код:

Get-ChildItem Folder -Directory | Foreach {
        $f = $_.GetFiles() | Foreach {$_.Directory.Name + "/" + $_.Name}
        $f.count,$f | Out-File "$($_.FullName)\$($_.Name).txt"
}



Время: 19:57.

Время: 19:57.
© OSzone.net 2001-