2014-10-22 3 views
0

Вот моя ситуация:Манипулирование строк, находящихся внутри текстовых файлов

Мы зависим от того, что пользователи нажимают на некоторый байт и выполняют ежедневную резервную копию.

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

Затем, после нескольких исследований, я разработал еще одну летучую мышь, которая проверяет, устарел ли файл и распечатывает его в текстовом файле.

Это своего рода файлов, которые я есть сейчас:

Файл: DailyBkp

Содержание:

"\ John \ log.log."

". \ Department1 \ Andy \ log.log"

Файл "\ department1 \ Nicole \ log.log." "\ Department2 \ Ann \ log.log.": Отделы

Содержание:

Отдел1

Отдел2

...

Великий, после того, как некоторые строки лечение в powershell мне удалось получить DailyBkp содержание быть таким:

John 

Department1 Andy 

... 

Обратите внимание, что это имеет место в начале и другой в конец, который не исчезнет независимо от того, какую обивку я использую ...

Итак, у меня есть эта настройка: SERVER > E:\Backup\

Внутри резервного копирования мы т.е. "Department 1" ... "Dep.-N"

Внутри каждой из них: "User-Lastname1" .. "User-lastname-N"

Что мне нужно, или то, что я хочу, чтобы это использовать PowerShell, чтобы получить содержимое DailyBkp содержащих "Dept_User" строку, а также экспортировать элементы к csv файл, подобный этому:

COLUMN_Name  COLUMN_Dept 
Andy    Department1 

Итак, как это сделать? Я не могу найти что-либо в Интернете, которое использует текстовые файлы.

+2

Вы действительно решаете неправильную проблему. Никогда не оставляйте резервные копии пользователям. Начните использовать управление версиями и резервные копии серверов для хранения данных. – vonPryz

+0

Я знаю, что я, но в реальном мире, как вспомогательный, единственное, что я могу сделать, это попытаться помочь использовать вещи, которые находятся в моем диапазоне. Другая причина - узнать о powershell. –

ответ

0

так предполагая, что я читаю ваш вопрос правильно вас DailyBkp файл, который выглядит следующим образом:

Department1 Andy 
Dpeartment2 Jim 
... 

, чтобы получить то, что вы хотите, вы можете прочитать каждую строку в расколе его затем выплюнуть обратно в CSV, как это:

"COLUMN_Name,COLUMN_Dept" | out-file <path>\outfile.csv 
$bkpFile = get-content $dailyBkpFile 
$bkpFile | ForEach-Object {$line = $_.split(" ") 
"$($line[1]),$($line[0])" | out-file <path>\outfile.csv -Append} 

вывод должен выглядеть следующим образом:

COLUMN_Name,COLUMN_Dept 
Andy,Department1 
Jim,Department2 
+0

Привет, после некоторых сценариев мне удалось получить именно то, что я хотел. Но ваша версия выглядит лучше, я записываю данные прямо в excel, а затем закрываю все объекты -Com. Если вы, ребята, думаете, что для меня важно, какой метод я использовал, спросите меня c: –

0

Jus Вот здесь быстрый пост.
На мой вопрос был дан ответ, спасибо.
И, если кто интересуется программированием Powershell, google Mastering Powershell by Tobias Weltner; это бесплатная книга с большим количеством объяснений.

Смежные вопросы