2015-08-19 2 views
0

У меня есть фрагмент кода, как показано ниже:Удалить весь текст из файла, используя массив

[email protected]() 
foreach($datec in $datecontent) { 
    $dc = $datec -split '/' 
    $mon = $dc[0] 
    $day = $dc[1] 
    $year = $dc[2] 
    if($thisweekdays -contains "$mon/$day/$year"){ 
     $datec | Add-Content "C:\Previous_Week_Latest.txt" 
     $array1 += $datec 
    } 
    else{ 
     #Do Nothing 
    } 
} 

Previous_Week_Latest содержимое файла:

8/18/2015 
8/13/2015 

У меня есть еще один текстовый файл, содержащий даты, как показано ниже. Я делаю так много других вещей и создаю этот файл.

8/18/2015 
8/13/2015 
8/07/2015 
7/31/2015 
7/23/2015 

Я не хочу, чтобы эти даты, которые находятся в массиве, так как мне нужно сделать еще несколько операций с этим текстовым файлом. В принципе, , что мне нужно для достижения, - это то, что независимо от того, что там в $ array1, наконец, мне нужно удалить их из текстового файла. Что-то вроде этого:

Get-Content "C:\split_weeks_temp.txt" | Where {$_ -match "$array1"} | Set-Content "C:\split_weeks.txt" 

Может кто-нибудь, пожалуйста, помогите мне в этом?

+0

У меня возникли проблемы с вашим объяснением. Так вы только пытаетесь сохранить даты в файле, который соответствует одной из дат в массиве? Также почему вы раскалываете дату в примере кода, чтобы снова присоединиться к ней позже? Можем ли мы иметь некоторые образцы данных и образец желаемого вывода, возможно? – Matt

+0

Несомненно .. Будет редактировать его сейчас .. – serverstackqns

ответ

0

Я предполагаю, что $array1 содержит правильно отформатированные данные, как показано в вашем примере.

8/18/2015 
8/13/2015 

И что вам просто нужно фильтровать содержимое другого файла, в котором он будет опускает эти даты в $array1. Я все еще расследую, но вы используете -match таким образом, это проблема. Поскольку это массив, вы можете просто использовать -notin или -notcontains.

Если вы просто PowerShell 2.0

Where {$array1 -notcontains $_} 

Или проще в undersand с PowerShell 3.0

Where {$_ -notin $array1} 

Я все еще пытаюсь выяснить вопрос с вашей текущей логикой. Вы действительно не объясняете, что не так с вашим примером.

На самом деле ...

Возможно, есть завершающие пробелы в строках даты? Я думаю, что это имеет какое-то отношение к нему, поскольку у вас есть пробелы после всех дат, которые вы отправили в вопросе, которые являются частью «файла».

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