Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Логон скрипт - Копировать файл из общей папки на рабочий стол пользователя (http://forum.oszone.net/showthread.php?t=239400)

diga 26-07-2012 17:06 1959350

Логон скрипт - Копировать файл из общей папки на рабочий стол пользователя
 
Например из \\fileserver\sharedfolder\file.file в %USERPROFILE%\Desktop\File.file
Но не перезаписывать, если он уже существует.
Посмотрел copy и xcopy, но там нет параметра не перезаписывать.
Как?
Может на ps?

NoIZz 26-07-2012 18:03 1959399

if exist "%USERPROFILE%\Desktop\File.file" не катит?

diga 26-07-2012 18:13 1959407

В общем накидал примерно следующее:
читать дальше »

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 1959424

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

diga 26-07-2012 18:38 1959426

Точно.
Этим и воспользуюсь.

Bruce Wayne 26-07-2012 18:47 1959429

diga, ещё можно при помощи echo n| copy

lchou 26-07-2012 18:56 1959435

Цитата:

+ гарантированно работает под любой виндой
Код:

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 1959664

lchou,
Спасибо, попробую.
А как указать сетевой путь в этом vbs?

Iska 27-07-2012 00:37 1959683

Цитата:

Цитата diga
Но почему то не работает. »

Потому что раскрывать переменные окружения «%Var%» для FileSystemObject надо самому — например, при помощи «WshShell.ExpandEnvironmentStrings()».

Но правильнее для получения предопределённых путей использовать стандартные методы, как здесь:
Цитата:

Цитата lchou
Код:

strDestinFile = WshShell.SpecialFolders("Desktop") & "\" & "test.dat"
»

либо посредством объекта автоматизации «Shell.Application».

Цитата:

Цитата diga
А как указать сетевой путь в этом vbs? »

Код:

strSourceFile = "\\fileserver\sharedfolder\file.file"


Время: 03:04.

Время: 03:04.
© OSzone.net 2001-