0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 268
1

Копирование файлов в нужную папку

01.07.2017, 15:18. Показов 4293. Ответов 14
Метки нет (Все метки)

Создал файл *.vbs. Задача. Из папки tmp скопировать файл в папку внутри FolderTo. Но есть особенности.
1. Но нужно копировать файл, созданный сегодня в папке tmp.
2. Нужно копировать файл вот в такую папку "C:\FolderTo\year\month", где year - текущий код, а month - текущий месяц.
То есть если, например, файл был создан в июле 2017 года, то его необходимо перенести в такую папку:
"C:\FolderTo\2017\09".
Я немножко кода написал, но уже здесь вылетает на строке 12.
Можете подсказать, что здесь не так и как дальше написать? Спасибо

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
With CreateObject("Scripting.FileSystemObject")
folderFrom = "C:\tmp"
FolderTo= "C:\FolderTo"
  If .FolderExists(folderTo) = false Then   
        .Createfolder forderTo
  End If
  Dim colFiles : Set colFiles = .GetFolder(folderFrom).Files
 
  yearVar = DatePart("yyyy", Now)
  forderTo = forderTo & "" & yearVar 
  If .FolderExists(folderTo) = false Then   
        .Createfolder folderTo
  End If
  End With
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2017, 15:18
Ответы с готовыми решениями:

Копирование всех файлов из директории в нужную папку без замены
Подскажите. Нужно скопировать из одной папки в другую все файлы, но все это проходит с заменой, а...

как в обработчике загрузки файлов сделать чтобы файл попадал в нужную папку?
подскажите пожалуйста. вот код: <?php $file = move_uploaded_file($_FILES, "/files" ....

Копирование файлов в папку по условию
Дано два каталога(dir1, dir2), содержащих файлы *.txt и не содержащие подкаталогов. Наполнить...

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

14
2616 / 546 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
01.07.2017, 22:22 2
Dimarik__1, наведите порядок в именах переменных: либо везде используйте имя foLderto, либо - foRderto.
Для исключения подобных ошибок используйте в начале сценария инструкцию Option Explicit.
0
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,029
02.07.2017, 00:39 3
Dimarik__1
У вас противоречие. Текущий год и год создания файла - разные вещи.
Созданный в папке файл нужно искать по дате? Или его имя заведомо известно?
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 268
02.07.2017, 14:06  [ТС] 4
Вот код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
With CreateObject("Scripting.FileSystemObject")
Dim folderFrom
Dim folderTo
 folderFrom = "C:\tmp"
folderTo = "C:\FolderTo"
  If .FolderExists(folderTo) = false Then   
        .Createfolder folderTo
  End If
  Dim colFiles : Set colFiles = .GetFolder(folderFrom).Files
   Dim yearVar
  yearVar = DatePart("yyyy", Now)
  folderTo = folderTo & "/" & yearVar 
  If .FolderExists(folderTo) = false Then   
        .Createfolder folderTo
  End If
  
  End With
Созданный в папке файл нужно найти по дате (найти файл за сегодняшний день) и скопировать его в папку folderTo.
Как это можно сделать?
0
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,029
02.07.2017, 14:53 5
Этот код дублировать не надо. От добавки в него Dim-ов толку не прибавится.
Что делать, если файлов с сегодняшней датой несколько или ни одного?
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 268
02.07.2017, 15:47  [ТС] 6
ничего не делать.
я вот так в итоге написал
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Option Explicit
With CreateObject("Scripting.FileSystemObject")
Dim folderFrom
Dim folderTo
Dim YearCreated
Dim MonthCreated
Dim DayCreated
Dim YearNow
Dim MonthNow
Dim DayNow
Dim yearVar
Dim fso
Dim FileName
Dim PathFrom
 
 folderFrom = "C:\tmp"
folderTo = "R:\FolderTo"
 
YearNow = Year(Now)
MonthNow = Month(Now)
DayNow = Day(Now)
Set fso = CreateObject("Scripting.FileSystemObject") 
 
 
  If .FolderExists(folderTo) = false Then   
        .Createfolder folderTo
  End If
  Dim colFiles : Set colFiles = .GetFolder(folderFrom).Files
   
  yearVar = DatePart("yyyy", Now)
  folderTo = folderTo & "/" & yearVar 
  If .FolderExists(folderTo) = false Then   
        .Createfolder folderTo
  End If
  Dim File
  For Each File in colFiles 
    YearCreated = Year(File.DateCreated)
    MonthCreated = Month(File.DateCreated)
    DayCreated = Day(File.DateCreated)
    If YearCreated = YearNow And  MonthCreated = MonthNow And DayCreated = DayNow Then
    FileName = fso.GetFileName(File)
    PathFrom = folderFrom &  "" & FileName
    fso.CopyFile PathFrom,folderTo
    End If
  Next  
  End With
Ошибка: разрешение отклонено. По ошибке в интернете искал, пробовал действовать по советам: дать права на папку из раздела "Безопасность". Не помогло. Даже общий доступ открыл. Тоже не помогло. Что делать?
0
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,029
02.07.2017, 16:37 7
"ничего не делать."
Т.е. сперва проверяем, что сегодняшиних файлов не более одного и только тогда копировать?

Добавлено через 40 минут
Ладно, ответа, видимо, фиг дождёшься, будем считать, что требуются все сегодняшние файлы.
Visual Basic
1
2
3
4
5
6
7
8
9
10
Input  = "C:\tmp"
OutPut = "H:\FolderTo"
 
Set OutPut = CreateObject("Shell.Application").NameSpace(OutPut)
For Each F In CreateObject("Scripting.FileSystemObject").GetFolder(Input).Files
    FDate = DateValue(F.DateCreated)
    If FDate = Date Then _
        Folder = Year(FDate) & "" & Right(0 & Month(FDate), 2) & "" :_
        OutPut.NewFolder Folder : F.Copy OutPut.Self.Path & "" & Folder
Next
1
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 268
02.07.2017, 17:37  [ТС] 8
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Option Explicit
With CreateObject("Scripting.FileSystemObject")
Dim folderFrom
Dim folderTo
Dim YearCreated
Dim MonthCreated
Dim DayCreated
Dim YearNow
Dim MonthNow
Dim DayNow
Dim yearVar
Dim fso
Dim FileName
Dim PathFrom
Dim F
Dim FDate
Dim Folder
Dim Input
dim Output
 
 folderFrom = "C:\tmp"
folderTo = "R:\FolderTo"
 
YearNow = Year(Now)
MonthNow = Month(Now)
DayNow = Day(Now)
Set fso = CreateObject("Scripting.FileSystemObject") 
 
 
  If .FolderExists(folderTo) = false Then   
        .Createfolder folderTo
  End If
  Dim colFiles : Set colFiles = .GetFolder(folderFrom).Files
   
  yearVar = DatePart("yyyy", Now)
  folderTo = folderTo & "/" & yearVar 
  If .FolderExists(folderTo) = false Then   
        .Createfolder folderTo
  End If
  Dim File
 
  Input = folderFrom
  Output = folderTo
 
Set OutPut = CreateObject("Shell.Application").NameSpace(OutPut)
For Each F In CreateObject("Scripting.FileSystemObject").GetFolder(Input).Files
    FDate = DateValue(F.DateCreated)
    If FDate = Date Then _
        Folder = Year(FDate) & "" & Right(0 & Month(FDate), 2) & "" :_
        OutPut.NewFolder Folder : F.Copy OutPut.Self.Path & "" & Folder
Next
 
 
 
  End With
Ошибка на этой строчке: требуется объект.
OutPut.NewFolder Folder : F.Copy OutPut.Self.Path & "" & Folder
0
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,029
02.07.2017, 17:48 9
Я разве где-то писал, что приведённый мной код нужно куда-то подклеивать? Он вполне самодостаточен.
И в Output записывается уже существующая папка.
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 268
02.07.2017, 18:24  [ТС] 10
я ваш код написал отдельно. Выдал ошибку: требуется объект OutPut
0
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,029
03.07.2017, 13:48 11
Последнее предложение видно? Во второй строке пишется существующий путь.
У меня там буква диска H (забыл поменять) вместо R.

Добавлено через 19 часов 0 минут
Обратил внимание, что в последних строках кода опять '\' пропадает. На форуме какой-то баг с цитированием "\".
Удваивание помогает.
Visual Basic
1
2
3
4
5
6
7
8
9
10
Input  = "C:\tmp"
OutPut = "R:\FolderTo"
 
Set OutPut = CreateObject("Shell.Application").NameSpace(OutPut)
For Each F In CreateObject("Scripting.FileSystemObject").GetFolder(Input).Files
    FDate = DateValue(F.DateCreated)
    If FDate = Date Then _
        Folder = Year(FDate) & "\" & Right(0 & Month(FDate), 2) & "\" :_
        OutPut.NewFolder Folder : F.Copy OutPut.Self.Path & "\" & Folder
Next
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 268
10.07.2017, 22:10  [ТС] 12
Скажите, а как можно его запустить через планировщик заданий? я пробовал, но что-то не получается. Читал, что нужно как-то через powershell запускать...
Условия запуска:
C:\Windows\WinSxS\amd64_microsoft-windows-powershell-exe_31bf3856ad364e35_6.3.9600.16384_none_59d45ebed629a9f8\po wershell.exe
Аргументы:
-File "D:\SQL Backup\all.vbs"
В параметрах есть "Программа или сценарий". я раньше пробовал просо vbs скрипт указывать, но не прокатывало....
Миниатюры
Копирование файлов в нужную папку   Копирование файлов в нужную папку   Копирование файлов в нужную папку  

Копирование файлов в нужную папку  
0
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,029
11.07.2017, 00:32 13
Указывайте путь к wscript.exe, а в параметрах уже путь к скрипту.
1
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 268
11.07.2017, 21:37  [ТС] 14
Аргументы: -Path "D:\SQL Backup\кввартальные скрипты\all-kv.vbs"

не отработало.... пишет, что скрипт выполняется... постоянно.. а по сути, ничего не происходит
Миниатюры
Копирование файлов в нужную папку   Копирование файлов в нужную папку   Копирование файлов в нужную папку  

0
3809 / 2016 / 788
Регистрация: 06.06.2017
Сообщений: 7,029
11.07.2017, 23:09 15
Я касался только этой части (без PoSh):
Цитата Сообщение от Dimarik__1
я раньше пробовал просо vbs скрипт указывать, но не прокатывало....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2017, 23:09

Копирование файлов в динамическую папку
создаю папку по заданным параметрам, занесенным в переменную char buf после этого необходимо...

Копирование файлов из папки в папку
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

Копирование файлов в выбранную папку
Добрый день! Перелопатил все темы, но конкретного решения для себя не нашел Задача такая: У меня...

Копирование файлов в отдельную папку
Прошу помощи в написании скрипта, который будет выполнять: 1. Проверять папки: D:\Досье\ДО...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru