Войти

Показать полную графическую версию : Логон скрипт - Копировать файл из общей папки на рабочий стол пользователя


diga
26-07-2012, 17:06
Например из \\fileserver\sharedfolder\file.file в %USERPROFILE%\Desktop\File.file
Но не перезаписывать, если он уже существует.
Посмотрел copy и xcopy, но там нет параметра не перезаписывать.
Как?
Может на ps?

NoIZz
26-07-2012, 18:03
if exist "%USERPROFILE%\Desktop\File.file" не катит?

diga
26-07-2012, 18:13
В общем накидал примерно следующее:

Option Explicit
Dim strSourceDir, strDestinDir, FSO
const OverwriteExisting = False

strSourceDir = "C:\testfile.dat"
strDestinDir = "%USERPROFILE%\Desktop\test.dat"

on error resume next
set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile strSourceDir , strDestinDir , OverWriteExisting

Но почему то не работает.
Хелп?

NoIZz
26-07-2012, 18:37
Все просто
сравните размер кода
+ гарантированно работает под любой виндой
if not exist "%USERPROFILE%\Desktop\File.file" copy \\fileserver\sharedfolder\file.file "%USERPROFILE%\Desktop\File.file" >nul

diga
26-07-2012, 18:38
Точно.
Этим и воспользуюсь.

Bruce Wayne
26-07-2012, 18:47
diga, ещё можно при помощи echo n| copy

lchou
26-07-2012, 18:56
+ гарантированно работает под любой виндой
Option Explicit

Dim strSourceFile, strDestinFile, FSO, WshShell
Const OverwriteExisting = False

set FSO = CreateObject("Scripting.FileSystemObject")
set WshShell = WScript.CreateObject("WScript.Shell")

strSourceFile = "C:\testfile.dat"
strDestinFile = WshShell.SpecialFolders("Desktop") & "\" & "test.dat"

rem On Error Resume Next

If Not FSO.FileExists(strDestinFile) Then
FSO.CopyFile strSourceFile, strDestinFile, OverWriteExisting
End If

diga
27-07-2012, 00:15
lchou,
Спасибо, попробую.
А как указать сетевой путь в этом vbs?

Iska
27-07-2012, 00:37
Но почему то не работает. »
Потому что раскрывать переменные окружения «%Var%» для FileSystemObject надо самому — например, при помощи «WshShell.ExpandEnvironmentStrings()».

Но правильнее для получения предопределённых путей использовать стандартные методы, как здесь:
strDestinFile = WshShell.SpecialFolders("Desktop") & "\" & "test.dat" »
либо посредством объекта автоматизации «Shell.Application».

А как указать сетевой путь в этом vbs? »
strSourceFile = "\\fileserver\sharedfolder\file.file"




© OSzone.net 2001-2012