PDA

Показать полную графическую версию : Как прописать этот путь в переменную?


Iwest
30-12-2012, 11:51
В Windows XP по этому пути находится файл: C:\Documents and Settings\Gert\Application Data\Replica\New\1.txt путь до файла прописывается так:
strFile = .BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:AppData").self.Path, "Replica\New\1.txt")

А вот как прописать этот путь находящийся в Windows 7: C:\Users\All users\Replica\New\1.txt в скрипте?
strFile = .BuildPath(WScript.CreateObject("...").NameSpace("...").self.Path, "Replica\New\1.txt")

Iska
30-12-2012, 17:53
«Меня терзают смутные сомнения…»
путь до файла прописывается так:
strFile = .BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:AppData").self.Path, "Replica\New\1.txt") »
Отсюда (http://forum.script-coding.com/viewtopic.php?pid=67995#p67995) что ль?

А вот как прописать этот путь находящийся в Windows 7: C:\Users\All users\Replica\New\1.txt в скрипте? »
Например, так:
Option Explicit

Dim objFSO
Dim objShell

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("Shell.Application")

WScript.Echo objFSO.GetAbsolutePathName(objFSO.BuildPath(objShell.NameSpace("shell:Common Documents").self.Path, "..\Replica\New\1.txt"))

Set objShell = Nothing
Set objFSO = Nothing

WScript.Quit 0

Если Вы, конечно, не пропустили в пути ничего. Точно не:
C:\Users\All users\AppData\Replica\New\1.txt
?

Iwest
30-12-2012, 20:48
Да, скрипт нашел там, но там как понял для XP. Путь точно такой: C:\Users\All users\Replica\New\. По нему находятся два файла 1.txt и App.bk. В чем задача: проверить что они есть на компе и если есть поставить им атрибут чтение. Ну а как вывести сообщение там показано. Попробовал скрипт с одним 1.txt, выводит что файла нет, хотя он есть.

Iska
31-12-2012, 02:18
Option Explicit

Dim strFile
Dim strPath

With WScript.CreateObject("Scripting.FileSystemObject")
For Each strFile In Array("1.txt", "App.bk")
strPath = .GetAbsolutePathName(.BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:Common Documents").self.Path, "..\Replica\New\" & strFile))

If .FileExists(strPath) Then
With .GetFile(strPath)
If Not .Attributes And 1 Then
.Attributes = .Attributes Or 1
End If
End With
End If
Next
End With

WScript.Quit 0
Из этого:
проверить что они есть на компе и если есть …»
видно, что смысла в сообщениях вида «Файл не найден» нет.

Iwest
31-12-2012, 07:38
Не получается, походу не находит путь до файлов. А как то проверку выполнения можно сделать, чтобы узнать в чем проблема?

Iska
31-12-2012, 11:04
А как то проверку выполнения можно сделать, чтобы узнать в чем проблема? »
Ну, сделайте:
Option Explicit

Dim strFile
Dim strPath

With WScript.CreateObject("Scripting.FileSystemObject")
For Each strFile In Array("1.txt", "App.bk")
strPath = .GetAbsolutePathName(.BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:Common Documents").self.Path, "..\Replica\New\" & strFile))

If .FileExists(strPath) Then
With .GetFile(strPath)
If Not .Attributes And 1 Then
.Attributes = .Attributes Or 1
End If
End With
Else
WScript.Echo "File [" & strPath & "] not found."
End If
Next
End With

WScript.Quit 0

Iwest
31-12-2012, 19:14
Выводится два сообщения что файлов нет. С:\Пользователи\All Users\Replica\New\ файлы на месте. Надоел уже наверное.

Iska
01-01-2013, 18:37
Iwest, мне надо будет добраться до соответствующей версии и попробовать самому посмотреть, что возвращает Проводник.




© OSzone.net 2001-2012