Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Копирование файла с маской...

Ответить
Настройки темы
VBS/WSH/JS - [решено] Копирование файла с маской...

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!

Не могу понять почему не отрабатывает скрипт (копирование файла с маской: SBC........._1..\.txt):

iDir1 = "D:\test2\in" ---- дир., где размещается файл
iDir2 = "D:\test2\out" ---- дир., в кот. надо скопировать

Maska = "SBC........._1..\.txt$"

Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.copyFile ""+iDir1+"\"+Maska+"", ""+iDir2+""


Благодарю!

Отправлено: 14:35, 02-09-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Dt83, где маска? Это:
Код: Выделить весь код
"SBC........._1..\.txt$"
имя папки «SBC........._1..» и файла «.txt$».

Символами маски могут быть:
* — любое количество символов;
«?» — один символ.

Если нужно что-либо сложнее — те же регулярные выражения — создавайте объект «VBScript.RegExp» и используйте его для сравнения. Либо сразу переходите на PoSH.

P.S. Обратите внимание, как следует оформлять код тэгом [code].

Отправлено: 15:12, 02-09-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


предполагалось что : SBC........._1..\.txt маска имени файла. Дело в том что если адже явно указать имя файла, все равно ошибка выходит:

iDir1 = "D:\test2\in" ---- дир., где размещается файл
iDir2 = "D:\test2\out" ---- дир., в кот. надо скопировать


Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.copyFile ""+iDir1+"\SBC201111236_100.txt"+iDir2+""

Отправлено: 16:18, 02-09-2011 | #3



Moderator


Сообщения: 53482
Благодарности: 15510

Профиль | Отправить PM | Цитировать


Цитата Dt83:
FSO.copyFile ""+iDir1+"\SBC201111236_100.txt"+iDir2+""
А куда второй параметр дели? Зачем прилепили его к первому?

Отправлено: 16:24, 02-09-2011 | #4


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имелось в виду (поспешила):

iDir1 = "D:\test2\in" ---- дир., где размещается файл
iDir2 = "D:\test2\out" ---- дир., в кот. надо скопировать


Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.copyFile ""+iDir1+"\SBC201111236_100.txt", ""+iDir2+""

Отправлено: 08:16, 05-09-2011 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Dt83, метод «.CopyFile» не может скопировать файл «D:\test2\in\SBC201111236_100.txt» в указываемый Вами файл «D:\test2\out», поскольку уже существует каталог с тем же именем. Чтобы второй параметр метода «.CopyFile» воспринимался как каталог — явно укажите на это обстоятельство:
Код: Выделить весь код
FSO.copyFile ""+iDir1+"\SBC201111236_100.txt", ""+iDir2+"\"
Описание Вашей ошибки дано прямо в справке по методу «.CopyFile»:
Цитата:
Scripting Runtime Library
CopyFile Method

But you cannot use:
Код: Выделить весь код
FileSystemObject.CopyFile "c:\mydocuments\*\R1???97.xls", "c:\tempfolder"
If source contains wildcard characters or destination ends with a path separator (\), it is assumed that destination is an existing folder in which to copy matching files. Otherwise, destination is assumed to be the name of a file to create. In either case, three things can happen when an individual file is copied.

If destination does not exist, source gets copied. This is the usual case.

If destination is an existing file, an error occurs if overwrite is false. Otherwise, an attempt is made to copy source over the existing file.

If destination is a directory, an error occurs.

An error also occurs if a source using wildcard characters doesn't match any files. The CopyFile method stops on the first error it encounters. No attempt is made to roll back or undo any changes made before an error occurs.
читать дальше »

Код: Выделить весь код
Option Explicit

Dim strFolderSource
Dim strFolderDest
Dim strFileName
Dim strFullFileName


strFolderSource = "D:\test2\in"
strFolderDest   = "D:\test2\out"
strFileName     = "SBC201111236_100.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FolderExists(strFolderSource) Then
		If .FolderExists(strFolderDest) Then
			strFullFileName = .BuildPath(strFolderSource, strFileName)
			
			If .FileExists(strFullFileName) Then
				.CopyFile strFullFileName, strFolderDest & "\"
			Else
				WScript.Echo "Can't find [" & strFullFileName & "]"
			End If
		Else
			WScript.Echo "Can't find [" & strFolderDest & "]"
		End If
	Else
		WScript.Echo "Can't find [" & strFolderSource & "]"
	End If
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:48, 05-09-2011 | #6


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за код, но хочется все таки понять синтаксис. Попробовала как вы посоветовали, но все равно ссылается на то что путь не найден:

iDir1 = "D:\test2\in"
iDir2 = "D:\test2\out"
Maska = "SBC........._1..\.txt$"

Set FSO2 = CreateObject("Scripting.FileSystemObject")
FSO2.copyFile ""+iDir1+"\"+Maska+"", ""+iDir2+"\"

делаю вариант такой, ошибка та же:

iDir1 = "D:\test2\in"
iDir2 = "D:\test2\out"
Maska = "SBC........._1..\.txt$"

Set FSO2 = CreateObject("Scripting.FileSystemObject")
FSO2.copyFile ""+iDir1+"\"+Maska+"", ""+iDir2+""

Делаю вариант такой (копирование осуществляется):
iDir1 = "D:\test2\in"
iDir2 = "D:\test2\out"
Maska = "SBC........._1..\.txt$"

Set FSO2 = CreateObject("Scripting.FileSystemObject")
FSO2.copyFile ""+iDir1+"\*.txt", ""+iDir2+""

Что же с маской такое, что wsh не понимает?

Отправлено: 14:29, 05-09-2011 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Dt83, прочтите ещё раз сообщение #2, где указано, какие символы допустимы в масках имён.

Дополнение: Microsoft Windows XP - Using wildcard characters.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:20, 05-09-2011 | #8


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, спасибо! наконец-то разобралась

Отправлено: 08:22, 06-09-2011 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Копирование файла с маской...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Копирование файла на несколько IP Moksar Скриптовые языки администрирования Windows 4 14-02-2018 20:35
Копирование файла на несколько IP Moksar AutoIt 2 12-06-2011 16:40
[Вопрос] Svcpack и копирование файла с CD ya158 Автоматическая установка Windows 2000/XP/2003 8 11-11-2008 21:58
Ошибка при копирование файла. slavamlad Microsoft Windows 2000/XP 12 13-03-2005 03:49
Двойное копирование файла с FTP. :( BlackMonk Хочу все знать 3 13-02-2005 09:08




 
Переход