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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Не могу сохранить файл (http://forum.oszone.net/showthread.php?t=286588)

Hancog 16-08-2014 23:15 2390222

Не могу сохранить файл
 
Проблема с переменной не могу сохранить файл через скрипт в %appdata% сохраняю таким способом oADOStream.SaveToFile "%appdata%\file", 2

Iska 17-08-2014 00:46 2390241

Код:

WScript.Echo WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%AppData%")
WScript.Echo WScript.CreateObject("Shell.Application").NameSpace("shell:AppData").self.Path

Второй способ предпочтительнее.

Hancog 17-08-2014 00:55 2390243

Немножко не понял а во втором варианте вместо NameSpace имя файла сохраняемого писать? Просто попробовал не получается

Полный скрипт
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'подключение
oXMLHTTP.Open "GET", "http://tau.rghost.ru/57502402/image.png", 0
'получение файла
oXMLHTTP.Send
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3 'разрешение на чтение и запись
oADOStream.Type = 1 'тип данных - Binary
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
'сохранение (с перезаписью файла при необходимости)
WScript.Echo WScript.CreateObject("Shell.Application").NameSpace("shell:AppData").self.Path

может чего не понимаю...

Iska 17-08-2014 06:35 2390263

Сохраните с расширением «.wsf»:
читать дальше »
Код:

<?xml version='1.0' encoding='windows-1251' standalone='yes'?>
<job>
        <script language='VBScript'>
                <![CDATA[
                        Option Explicit

                        Const adTypeBinary = 1
                        Const adModeReadWrite = 3
                        Const adSaveCreateOverWrite = 2


                        Dim strUrl

                        Dim objXMLHTTPRequest
                        Dim objFSO


                        strUrl = "http://tau.rghost.ru/57502402/image.png"

                        Set objFSO            = WScript.CreateObject("Scripting.FileSystemObject")
                        Set objXMLHTTPRequest = WScript.CreateObject("Msxml2.XMLHTTP")

                        objXMLHTTPRequest.Open "GET", strUrl,False
                        objXMLHTTPRequest.send

                        If objXMLHTTPRequest.status = 200 Then
                                With WScript.CreateObject("ADODB.Stream")
                                        .Mode = adModeReadWrite
                                        .Type = adTypeBinary
                                        .Open
                                        .Write objXMLHTTPRequest.responseBody
                                        .SaveToFile objFSO.BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:AppData").self.Path, objFSO.GetFileName(decodeURI(strUrl))), adSaveCreateOverWrite
                                End With
                        Else
                                WScript.Echo "Status: " & CStr(objXMLHTTPRequest.status)
                        End If

                        Set objXMLHTTPRequest = Nothing
                        Set objFSO            = Nothing

                        WScript.Quit 0
                ]]>
        </script>

        <script language='JScript'>
                <![CDATA[
                        function decodeURI(sUrl) {
                                return decodeURI(sUrl);
                        }
                ]]>
        </script>
</job>


Hancog 17-08-2014 10:29 2390300

Спасибо,а как мне добавить деректорию в аппдате? ну к примеру appdata\adobe

Iska 17-08-2014 10:58 2390319

Цитата:

Цитата Hancog
добавить »

Добавить — означает «создать»? Или имеется в виду — просто дописать к пути в виде «shell:AppData+adobe+имя файла»?

Hancog 17-08-2014 12:07 2390342

Нет не создать ну что бы в подпапку аппдаты можно было сохранить

Iska 17-08-2014 13:54 2390373

Например, так:
читать дальше »
Код:

<?xml version='1.0' encoding='windows-1251' standalone='yes'?>
<job>
        <script language='VBScript'>
                <![CDATA[
                        Option Explicit
                       
                        Const adTypeBinary = 1
                        Const adModeReadWrite = 3
                        Const adSaveCreateOverWrite = 2
                       
                       
                        Dim strUrl
                        Dim strDestPath
                       
                        Dim objFSO
                        Dim objXMLHTTPRequest
                       
                       
                        strUrl = "http://tau.rghost.ru/57502402/image.png"
                       
                        Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
                       
                        strDestPath = objFSO.BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:AppData").self.Path, "adobe")
                       
                        If objFSO.FolderExists(strDestPath) Then
                                Set objXMLHTTPRequest = WScript.CreateObject("Msxml2.XMLHTTP")
                               
                                objXMLHTTPRequest.Open "GET", strUrl,False
                                objXMLHTTPRequest.send
                               
                                If objXMLHTTPRequest.status = 200 Then
                                        With WScript.CreateObject("ADODB.Stream")
                                                .Mode = adModeReadWrite
                                                .Type = adTypeBinary
                                                .Open
                                                .Write objXMLHTTPRequest.responseBody
                                                .SaveToFile objFSO.BuildPath(strDestPath, objFSO.GetFileName(decodeURI(strUrl))), adSaveCreateOverWrite
                                        End With
                                Else
                                        WScript.Echo "Status: " & CStr(objXMLHTTPRequest.status)
                                End If
                               
                                Set objXMLHTTPRequest = Nothing
                        Else
                                WScript.Echo "Destination path [" & strDestPath & "] not found."
                                WScript.Quit 1
                        End If
                       
                        Set objFSO = Nothing
                       
                        WScript.Quit 0
                ]]>
        </script>
       
        <script language='JScript'>
                <![CDATA[
                        function decodeURI(sUrl) {
                                return decodeURI(sUrl);
                        }
                ]]>
        </script>
</job>


Hancog 17-08-2014 18:10 2390470

понял,а можно еще в конце запуск файла добавить?

Hancog 17-08-2014 20:55 2390518

ап тему

Iska 17-08-2014 23:27 2390541

Цитата:

Цитата Hancog
а можно еще в конце запуск файла добавить? »

Какого файла?

Hancog 18-08-2014 10:45 2390642

который будут сохранятся в аппдату,а именно картинку

Iska 18-08-2014 13:56 2390736

Пробуйте:
читать дальше »
Код:

<?xml version='1.0' encoding='windows-1251' standalone='yes'?>
<job>
        <script language='VBScript'>
                <![CDATA[
                        Option Explicit
                       
                        Const adTypeBinary = 1
                        Const adModeReadWrite = 3
                        Const adSaveCreateOverWrite = 2
                       
                       
                        Dim strUrl
                        Dim strDestPath
                       
                        Dim objFSO
                        Dim objShell
                        Dim objXMLHTTPRequest
                       
                        Dim strFullName
                       
                       
                        strUrl = "http://tau.rghost.ru/57502402/image.png"
                       
                        Set objFSO  = WScript.CreateObject("Scripting.FileSystemObject")
                        Set objShell = WScript.CreateObject("Shell.Application")
                       
                        strDestPath = objFSO.BuildPath(objShell.NameSpace("shell:AppData").self.Path, "adobe")
                       
                        If objFSO.FolderExists(strDestPath) Then
                                Set objXMLHTTPRequest = WScript.CreateObject("Msxml2.XMLHTTP")
                               
                                objXMLHTTPRequest.Open "GET", strUrl,False
                                objXMLHTTPRequest.send
                               
                                If objXMLHTTPRequest.status = 200 Then
                                        strFullName = objFSO.BuildPath(strDestPath, objFSO.GetFileName(decodeURI(strUrl)))
                                       
                                        With WScript.CreateObject("ADODB.Stream")
                                                .Mode = adModeReadWrite
                                                .Type = adTypeBinary
                                                .Open
                                                .Write objXMLHTTPRequest.responseBody
                                                .SaveToFile strFullName, adSaveCreateOverWrite
                                        End With
                                       
                                        objShell.ShellExecute strFullName
                                Else
                                        WScript.Echo "Status: " & CStr(objXMLHTTPRequest.status)
                                End If
                               
                                Set objXMLHTTPRequest = Nothing
                        Else
                                WScript.Echo "Destination path [" & strDestPath & "] not found."
                                WScript.Quit 1
                        End If
                       
                        Set objShell = Nothing
                        Set objFSO  = Nothing
                       
                        WScript.Quit 0
                ]]>
        </script>
       
        <script language='JScript'>
                <![CDATA[
                        function decodeURI(sUrl) {
                                return decodeURI(sUrl);
                        }
                ]]>
        </script>
</job>


Вопрос: в чём смысл сохранения именно в «shell:appdata», а не, скажем, в «%Temp%»?

Hancog 19-08-2014 01:07 2391024

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


Время: 08:27.

Время: 08:27.
© OSzone.net 2001-