2016-03-04 10 views
3

Я хотел бы передать полный путь текстового файла к одной из функций. я поместить мой сценарий, и текстовый файл в одном месте с помощью следующей команды я нашел путь к папке, где мой скриптКак написать функцию для объединения пути папки и имени файла?

p = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName) 

p пришел как C:\test

мое имя файла xyz.txt

я хочу передать аргумент в функцию в качестве C:\test\xyz.txt

как я могу объединить путь и имя файла

я попытался ниже код

path = p & "xyz.txt" 

может ли один помочь мне, как может присоединиться путь и имя файла.

+0

Сожалеем путь = & р & "xyz.txt" – surendra

ответ

7

You can использовать конкатенацию строк для создания пути. Однако правильный способ сделать это - использовать файл BuildPath() method FileSystemObject, потому что при любых обстоятельствах это будет делать правильно с обратной косой чертой.

Set FSO = CreateObject("Scripting.FileSystemObject") 

scriptPath = FSO.GetParentFolderName(WScript.ScriptFullName) 
textFilePath = FSO.BuildPath(scriptPath, "xyz.txt") 

MsgBox textFilePath 
+1

Спасибо, Томалак, он работал идеально подходит для моей проблемы. – surendra

2

Попробуйте, как этот код:

Option Explicit 
Msgbox GetFilePath("xyz.txt") 
'****************************************************** 
Function GetFilePath(FileName) 
Dim fso,scriptPath 
Set fso = CreateObject("Scripting.FileSystemObject") 
scriptPath = FSO.GetParentFolderName(WScript.ScriptFullName) 
GetFilePath = FSO.BuildPath(scriptPath,FileName) 
End Function 
'****************************************************** 
+1

Это немного проблематично, потому что оно оставляет ложное впечатление, что он волшебным образом может найти полный путь к файлу, а все, что он действительно делает, - это добавить текущий каталог. 'GetAbsolutePathName()' предназначен для дезинфекции нечистого (или относительного) пути, а не для получения пути к файлу. Кроме того, не обязательно верно, что текущий каталог процесса является тем, в котором находится файл VBScript. – Tomalak

+1

@Tomalak Я редактирую свой ответ с вашим замечанием в функцию! Спасибо ! – Hackoo

Смежные вопросы