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.
Powershell

Avatar of undefined
Last Comment
Steve Williams
SOLUTION
Avatar of Norie
Norie

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
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
Avatar of Norie
Norie

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
Avatar of Steve Williams

ASKER

Norie, No I do not.
SOLUTION
Avatar of Norie
Norie

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
ASKER CERTIFIED SOLUTION
Avatar of oBdA
oBdA

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
Avatar of Steve Williams

ASKER

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.
Avatar of Steve Williams

ASKER

Thanks all!
Powershell
Powershell

Windows PowerShell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and associated scripting language built on the .NET Framework. PowerShell provides full access to the Component Object Model (COM) and Windows Management Instrumentation (WMI), enabling administrators to perform administrative tasks on both local and remote Windows systems as well as WS-Management and Common Information Model (CIM) enabling management of remote Linux systems and network devices.

27K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo