Link to home
Start Free TrialLog in
Avatar of Steve Williams
Steve WilliamsFlag for United States of America

asked on

Why doesn't my Powershell script work?

I have a Powershell script that seems to run ok, no errors and taxes the CPU, but does not do anything. The server will run this Monday Thru Friday at 7 pm.  The purpose of this is to find all pdf files that was created yesterday and move them to a new directory named by the LastWriteTime.Date.  When our ERP system does its end of the day, it generates all the assembly releases, in pdf format,  for the next day to be built. These are created in the directory named 'release_only'. We like to keep this directory clean so it doesn't get cluttered and eventually slow down another script that we run from the same location.

$src = '\\svr1\assembly_dept\schedule\release_only'

$dst = '\\svr1\assembly_dept\shedule\release_archive'

$file = Get-ChildItem -Path $src -Include '*.pdf' | Where{$_.LastWriteTime -eq (Get-Date).AddDays(-1)}

if ($file = (Get-ChildItem -Path $src -Include '*.pdf' | Where{$_.LastWriteTime -eq (Get-Date).AddDays(-1)}))
{
   $dstdir = $dst + '\' + $file.LastWriteTime.Date.ToString('yyyy') + '\' + $file.LastWriteTime.Date.ToString('MM - MMM') + '\' + $file.LastWriteTime.Date.ToString('MMM. dd')
 
   if(!(test-path $dstdir))
     {
      New-Item -ItemType Directory -Force -Path $dstdir
     }
   Move-Item -Path $src -Destination  $dstdir

Open in new window


I could use a second set of eyes to help me figure this one out. Would really appreciate some help.
SOLUTION
Avatar of Norie
Norie

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Steve Williams

ASKER

I did as you suggested and that didn't help. I then changed these to lines of code to include the date format. And that didn't help any either.

$file = Get-ChildItem -Path $src -Include '*.pdf' | Where{$_.LastWriteTime.Date.ToString('yyyyMMdd') -eq (Get-Date).AddDays(-1).ToString('yyyyMMdd') }

if ($file = (Get-ChildItem -Path $src -Include '*.pdf' | Where{$_.LastWriteTime.Date.ToString('yyyyMMdd') -eq (Get-Date).AddDays(-1).ToString('yyyyMMdd') }))

Open in new window

SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Norie, No I do not.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
oBda, That did the trick worked like a charm. Then I removed the  -WhatIf, run it again and it moved all the files.

Norie, Thanks for your help. Appreciate your time.
Thanks all!