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

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

Miravild 03-11-2013 23:19 2246859

Создание CSV файла
 
Вечер добрый коллеги!
Есть задача создания CSV или TXT файла, который содержит: "Data Created" (Дата создания файла), "File Version" (версия файла) и "Description" (Описание файла) EXE файлов содержащихся в папке. Получается 3 столбца.
К примеру:
Код:

rem *******************
rem Записываем в CSV файл
rem *******************
@echo off
setlocal EnableDelayedExpansion

(
  echo "Name", "Data Modified", "Data Created"
  for %%f in (*.exe) do (
                set "name=%%~nxf"
                if not "!name!"=="%~nx0" (
                        set "mtime=%%~tf"
                        for /f "tokens=1-3" %%d in (
                                'dir /t:c "!name!" ^| find /i "!name!"'
                        ) do set "ctime=%%~d %%~e"
                        echo "!name!", !mtime!, !ctime!, !filver!
                )
        )
) > Cont.csv


Foreigner 03-11-2013 23:55 2246884

Powershell
Код:

$files = @()

gci C:\Windows\*.exe | % {

    $files += new-object psobject -property $( [ordered] @{
   
        Name = $($_.VersionInfo.FileName)
        Time = $($_.CreationTime)
        Version = $($_.VersionInfo.FileVersion)
        Description = $($_.VersionInfo.FileDescription)
  })
}

$files | export-csv .\files.csv -encoding default


Miravild 04-11-2013 00:48 2246915

Вложений: 1
Благодарю за ответ Foreigner
(Лучше, конечно, bat\batch файл, поскольку не сталкивался со скриптовым языком Powershell).
При запуске скрипта выдаёт ошибку (см. файл)

Iska 04-11-2013 01:07 2246935

Цитата:

Цитата Miravild
Лучше, конечно, bat\batch файл, поскольку не сталкивался со скриптовым языком Powershell »

Фокус не удастся, поскольку нет возможности определять версию файла кроме как сторонней утилитой.

Цитата:

Цитата Miravild
При запуске скрипта выдаёт ошибку (см. файл) »

Как разрешить выполнение скриптов PowerShell - Поиск в Google.

Foreigner 04-11-2013 08:43 2247017

Miravild, У вас наверное PowerShell v2.0 ? Извиняюсь, не подумал, тогда измените:
Код:

$files = @()

gci C:\Windows\*.exe | % {

    $files += new-object psobject -property @{
   
        Name = $($_.VersionInfo.FileName)
        Time = $($_.CreationTime)
        Version = $($_.VersionInfo.FileVersion)
        Description = $($_.VersionInfo.FileDescription)
  }
}

$files | select Name, Time, Version, Description | export-csv .\files.csv -encoding default


Miravild 04-11-2013 10:07 2247039

День добрый коллеги!
Установлен PowerShell V2 CTP (beta)
Код:

Windows PowerShell
(C) Корпорация Майкрософт, 2009. Все права защищены.

PS C:\Users\> $host.version

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1    -1

По поводу
Цитата:

Как разрешить выполнение скриптов PowerShell - Поиск в Google.
Iska, если посмотреть прикреплённый файл, то ошибка в другом. Разрешение на запуск скрипта дал.
Конечно, перед тем, как спрашивать совета, посмотрел информацию в интернете.
Во-всяком случае, спасибо за ответ.

Miravild 04-11-2013 10:22 2247050

Благодарю за скрипт Foreigner .
Небольшой нюанс.
Есть возможность убрать абсолютный путь, оставив, только название файла.
То, что получилось при выполнение.
Name,"Time","Version","Description"
C:\DebtControl\actions_log.exe,"21.03.2013 13:23:45","6.12.3.0","Лог действий"
C:\DebtControl\bank_portfolio-old.exe,"05.09.2013 12:30:01","6.11.0.16","Банки и портфели"

Оставив только название файла:
Name,"Time","Version","Description"
actions_log.exe,"21.03.2013 13:23:45","6.12.3.0","Лог действий"
bank_portfolio-old.exe,"05.09.2013 12:30:01","6.11.0.16","Банки и портфели"

Foreigner 04-11-2013 11:03 2247066

Miravild, Измените строку:
Код:

Name = $($_.Name)

Miravild 04-11-2013 21:52 2247437

Благодарю Foreigner за помощь.

Iska 04-11-2013 22:04 2247443

Цитата:

Цитата Miravild
Iska, если посмотреть прикреплённый файл, то ошибка в другом. »

Miravild, прошу прощения, не доглядел до конца.


Время: 13:17.

Время: 13:17.
© OSzone.net 2001-