S
S
sidamon2017-12-19 14:36:24
JavaScript
sidamon, 2017-12-19 14:36:24

How to implement a script\program to automate file transfer?

Good day gentlemen.
Given: DANO folder - inside it are subfolders, which are project folders, with files inside.
Required: .exe file, which will, after execution, pick up newly created files of 2 resolutions, for example .file and .porject and copy them to the C->FOLDER folder.
When launched the next day, the old .file and .project files will be deleted from the C->FOLDER folder and moved to C->FOLDER->ARCHIVE, and inside the ARCHIVE folder the files should be sorted by ARCHIVE->YEAR->MONTH->DAY
I am far from programming, but studying the issue I did not find software on which such a utility can be implemented.
I thought in the direction of the powerrshell script:

#By BigTeddy 05 September 2011

#This script uses the .NET FileSystemWatcher class to monitor file events in folder(s).
#The advantage of this method over using WMI eventing is that this can monitor sub-folders.
#The -Action parameter can contain any valid Powershell commands.  I have just included two for example.
#The script can be set to a wildcard filter, and IncludeSubdirectories can be changed to $true.
#You need not subscribe to all three types of event.  All three are shown for example.
# Version 1.1

$folder = 'C:\PRIMER' # Enter the root path you want to monitor.
$filter = '*.*'  # You can enter a wildcard filter here.

# In the following line, you can change 'IncludeSubdirectories to $true if required.                          
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}

# Here, all three events are registerd.  You need only subscribe to events that you need:

Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

Register-ObjectEvent $fsw Deleted -SourceIdentifier FileDeleted -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore red
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore white
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

# To stop the monitoring, run the following commands:
# Unregister-Event FileDeleted
# Unregister-Event FileCreated
# Unregister-Event FileChanged




$a=Get-Item ($folder+"\/"+$name)
switch ($a.Extension)
{
'.mp3' {Write-Host "AudioFile"; Copy-Item $a.FullName -Destination d:\test\Audio}
'.txt' {Write-Host "TextFile"; Copy-Item $a.FullName -Destination d:\test\Text}
'.bat' {Write-Host "batchfile"}
}

But without understanding anything in programming, it is difficult to parse something.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
E
Ezhyg, 2017-12-19
@Ezhyg

Here you are restless: D
Or, instead of a powershell - the topic of Tasks on bat files on the rubord. Or similar topics on oszone,
There seems to be a theme about the powershell there too. It's definitely more powerful, but...

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question