Dimych
|
Posted: Sat Apr 25, 2009 16:44 Post subject: |
|
|
Koljasik wrote: | а через %commander_path% можно как-нибудь |
Например.
1. Заменить начало кода Batya
с
Code: |
'============================
' Колонка Result будет возвращать признак наличия файла\каталога в указанном файле-списке:
' 0 - файл\каталог НЕ найден; 1 - файл\каталог найден
'=== Изменяемые параметры ===
Const FileList = "C:\FileList.txt" 'Файл-список
'============================
Dim FSO, List, QuitFlag
Const ForReading = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
|
на
Code: |
'============================
' Колонка Result будет возвращать признак наличия файла\каталога в указанном файле-списке:
' 0 - файл\каталог НЕ найден; 1 - файл\каталог найден
'============================
Dim FSO, List, QuitFlag, FileList
Const ForReading = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
' Файл-список
FileList="%commander_path%\FileList.txt"
' Замена любых переменных окружения, заданных в FileList
FileList = strReplaceEnveroumentString(FileList)
|
и 2. Заменить конец кода Batya
с
Code: |
Sub Quit
QuitFlag = True
Set FSO = Nothing
End Sub
|
на
Code: |
Sub Quit
QuitFlag = True
Set FSO = Nothing
Set WSHShell = Nothing
End Sub
Function strReplaceEnveroumentString(byVal strSource)
' Замена всех переменных окружения в строке strSource на их значение
Dim strFields, intSizeFields, intI, strTarget
strTarget = ""
If strSource <> "" Then
strFields = Split(strSource,"%")
intSizeFields = UBound(strFields)
strTarget=strFields(0)
For intI = 1 To intSizeFields Step 2
strTarget = strTarget & WshShell.ExpandEnvironmentStrings("%" & strFields(intI) & "%")
If intI + 1 <= intSizeFields Then strTarget = strTarget & strFields(intI + 1)
Next
End If
strReplaceEnveroumentString = strTarget
End Function
|
Теперь можно в FileList задавать любые переменные окружение, а не только %commander_path%.[/b] |
|