Vbs как создать файл: Как создать файл VBS (VBScript) ?

Как создать текстовый файл и записать его в vbscript

У меня есть следующий скрипт, который находит все файлы доступа на машине:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile Where Extension = 'mdb' OR Extension = 'ldb'")

For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next

Я очень любитель, когда дело доходит до vbscript. Вместо Эха в диалоговом окне, как я могу заставить скрипт записать каждую строку в текстовый файл с именем «Results.txt»?

Кроме того, в качестве бонуса, как включить дату изменения каждого файла доступа?

vbscript

Поделиться

Источник


Kevin

02 декабря 2015 в 14:59

3 ответа




5

Это то, что вы ищете. В этой части: («C:\test.txt», 8 , True) первым параметром является путь к файлу. Второй параметр-это ключевое вариант. Существует три варианта второго параметра: 1 средство для чтения, 2 средства для записи и 8 средств для добавления. Третий параметр является логическим, true означает, что новый файл может быть создан, если он не существует. False означает, что новый файл не может быть создан.

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

Set OutPutFile = FSO.OpenTextFile("C:\test.txt" ,8 , True)
OutPutFile.WriteLine("Writing text to a file")

Set FSO= Nothing

Поделиться


Jake

04 декабря 2015 в 22:33



2

Простой поиск в Google, такой как "vbscript create and write to text file" , даст вам океан информации о том, как справиться с этим. Во всяком случае, вот самый простой способ дать вам толчок.

'~ Create a FileSystemObject
Set objFSO=CreateObject("Scripting.FileSystemObject")

'~ Provide file path
outFile="YouFolderPath\Results.txt"

'~ Setting up file to write
Set objFile = objFSO.CreateTextFile(outFile,True)


strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile Where Extension = 'mdb' OR Extension = 'ldb'")

For Each obj_File in colFiles
    'Wscript.Echo objFile.Name  'Commented out

    '~ Write to file
    objFile.WriteLine obj_File.Name
Next

'~ Close the file
objFile.Close

Поделиться


ManishChristian

02 декабря 2015 в 15:24



0

Используйте метод FileSystemObject . CreateTextFile для создания текстового файла. Внимательно изучите документацию/образец.

А cim_datafile инструментария имеет свойство .LastAccess .

Поделиться


Ekkehard.Horner

02 декабря 2015 в 15:25



Похожие вопросы:

VB.NET: как программно создать текстовый файл в SSIS!

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

Чтение и запись в файл с помощью VBScript

Как мы можем прочитать и записать некоторую строку в текстовый файл с помощью VBScript? Я имею в виду, что у меня есть текстовый файл, который уже присутствует, поэтому, когда я использую этот код…

Как создать и записать текстовый файл в Lisp

Я хочу знать, как создать и записать текстовый файл в lisp. Я просто хочу написать простую строчку вроде: break 1 break 2 Я использую LispWorks IDE в окне 7

vbscript создать текстовый файл в каталоге сервера

У меня есть приложение vbscript, которое работает на сервере, и я попытался запустить это приложение на своем локальном компьютере. Проблема в том, что я хочу создать текстовый файл в каталоге…

VBScript может создать текстовый файл, но не может удалить файл (разрешение отказано)?

Я создаю файл .vbs (который может: создать текстовый файл -> открыть notepad.exe — > удалить файл выше) следующим образом: ‘ Create a new file Dim objFS, objFile Set objFS =…

Как создать и записать данные в текстовый файл в android программно?

Я создаю пример приложения в своем телефоне android, чтобы создать новый текстовый файл и записать некоторые данные в этот текстовый файл.

Как записать список (of) в текстовый файл и извлечь его (vb.net)

Заглавие. Мне нужно записать свой ListOf, который просто содержит такие значения, как ноль, ноль, один, один, два и т. д., В текстовый файл, а затем снова загрузить его. Любая помощь ценится!

Как создать текстовый файл и записать его в Kotlin?

Я новичок в разработке Kotlin/Android. Я пытаюсь просто записать текст в текстовый файл. Я просто не могу понять, как это сделать. Я пробовал делать: File(filename.txt).printWriter().use { out ->…

Невозможно записать существующий текстовый файл в RobotFramework

Невозможно записать существующий текстовый файл в RobotFramework. Моя цель-получить вывод из for loop и записать значение в текстовый файл, в настоящее время я могу создать текстовый файл и…

Как открыть текстовый файл блокнота и держать его поверх всех остальных windows, пока я не закрою его в VBScript?

Я хотел бы создать vbscript, чтобы открыть текстовый файл блокнота, который я сохранил, и держать этот текстовый файл блокнота поверх всех других windows либо до тех пор, пока я не сверну его, либо…

Метод CreateTextFile (Visual Basic для приложений)



  • Чтение занимает 2 мин

В этой статье

Создает указанное имя файла и возвращает объект TextStream , который можно использовать для чтения или записи в файл.Creates a specified file name and returns a TextStream object that can be used to read from or write to the file.

СинтаксисSyntax

объект. CreateTextFile (filename, [ overwrite, [ Unicode ]])object.CreateTextFile (filename, [ overwrite, [ unicode ]])

Синтаксис метода CreateTextFile состоит из следующих частей:The CreateTextFile method has these parts:

ЧастьPartОписаниеDescription
objectobjectОбязательный.Required. Всегда является именем объекта FileSystemObject или папки .Always the name of a FileSystemObject or Folder object.
заданfilenameОбязательный.Required. Строковое выражение, определяющее файл, который требуется создать.String expression that identifies the file to create.
перезаписатьoverwriteНеобязательно.Optional. Значение Boolean, указывающее, требуется ли перезаписывать существующий файл.Boolean value that indicates if an existing file can be overwritten. Имеет значение True, если файл можно перезаписать, и False в противном случае.The value is True if the file can be overwritten; False if it can’t be overwritten. Если этот параметр опущен, существующие файлы могут быть перезаписаны.If omitted, existing files can be overwritten.
форматаunicodeНеобязательно.Optional. Значение Boolean, указывающее, будет ли файл создан в формате Юникод или ASCII.Boolean value that indicates whether the file is created as a Unicode or ASCII file. Значение True, если файл будет создан в формате Юникод, значение False, если требуется создать ASCII-файл.The value is True if the file is created as a Unicode file; False if it’s created as an ASCII file. Если этот элемент опущен, создается ASCII-файл.If omitted, an ASCII file is assumed.

ПримечанияRemarks

В приведенном ниже коде показано, как с помощью метода CreateTextFile создать и открыть текстовый файл.The following code illustrates how to use the CreateTextFile method to create and open a text file. Если аргумент overwrite имеет значение falseили отсутствует, то для имени файла , который уже существует, возникает ошибка.If the overwrite argument is False, or is not provided, for a filename that already exists, an error occurs.

Sub CreateAfile
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile("c:\testfile.txt", True)
    a.WriteLine("This is a test.")
    a.Close
End Sub

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.



Урок VBScript №10: Работа с текстовыми документами — TextStream

Вот наконец мы и добрались до урока по работе с текстовыми файлами при помощи VBScript. С этим нам поможет объект TextStream. Мы научимся создавать, открывать текстовые файлы, а так же записывать в ниж данные и считывать информацию. Вполне полезная тема, давайте приступим.

Прежде всего надо упомянуть то, что для работы с файловой системой требуется объект FileSystemObject, в простонародье FSO. В примерах показано его создание.

Создание текстового файла при помощи VBS

Для создания текстового файла нам понадобится объект FSO и метод CreateTextFile.
Параметры: CreateTextFile(Название [, Перезапись[, Кодировка]])

  • Название — Путь и название файла вместе с его расширением. Например «test.txt» или «C:\Papka\test.txt».
  • Перезапись — Если Tru, то перезаписывать файл. False — не перезаписывать файл. По умолчанию False.
  • Кодировка — Определяет кодировку файла. True – формат Unicode или False – формат ASCII.

Последние два параметра не обязательные. Теперь посмотрим пример создания пустого текстового документа при помощи vbs:

'********************************************************
'Урок VBScript №10:
'Работа с текстовыми документами - TextStream.
'file_1.vbs
'********************************************************

Dim FSO, Txt
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.CreateTextFile("txt.txt", True)

Так же можно создавать текстовые документа при помощи метода OpenTextFile.

Метод OpenTextFile

Данный метод позволяет открывать текстовый файл, а так же вносить в него изменения.
Параметры: OpenTextFile(Название [, Режим [, Запись [, Формат]]])

  • Название — Путь и название файла вместе с его расширением. Например «test.txt» или «C:\Papka\test.txt».
  • Режим — (1) — Только для чтения; (2) — Для записи. Если файл существовал, то его содержимое теряется; (8) — Дописывать в конец файла.
  • Запись — Создать файл, если он не существует (True), в противном случае False. По умолчанию False
  • Формат — (0) — Открыть файл в формате ASCII; (-1) — Открыть файл в формате Unicode; (-2) — По умолчанию системы. По умолчанию стоит (0).
'********************************************************
'Урок VBScript №10:
'Работа с текстовыми документами - TextStream.
'file_2.vbs
'********************************************************

Dim FSO, File
Set FSO = CreateObject("Scripting.FileSystemObject")

Set File = FSO.OpenTextFile("base.txt", 1, True)
File2.Close

Свойства TextStream

  • AtEndOfLine — возвращает два значения: True — если достигнут конец строки. В противном случае — False. Работает только если файл открыт для чтения.
  • AtEndOfStream — Возвращает значение True, если достигнут конец файла и Fale в противном случае. Работает только если файл открыт для чтения.
  • Column — Возвращает номер колонки текущего символа.
  • Line — Возвращает номер текущей строки.

Примеры с данными свойствами я покажу ниже. Для начала нам нужно познакомиться с методами TextStream.

Методы TextStream

  • Close — закрывает открытый файл.
  • Read — Считывает указанное количество символов и возвращает полученную строку. Количество символов указывать в круглых скобках.
  • ReadAll — Считывает всё содержимое файла.
  • ReadLine — Считывает строку из файла и возвращает её.
  • Skip — Пропускает указанное количество символов при чтении. Количество символов указывать в круглых скобках.
  • SkipLine — Пропускает одну строку при чтении файла.
  • Write — Записывает в файл указанную строку. Символы возврата каретки и новой строки в файл не записываются
  • WriteLine — Записывает в файл указанную строку. В файл записываются символы возврата каретки и новой строки.
  • WriteBlankLines — записывает в файл указанное количество строк.

А теперь давайте посмотрим примеры.

'********************************************************
'Урок VBScript №10:
'Работа с текстовыми документами - TextStream.
'file_3.vbs
'********************************************************

Dim FSO, arr_Line, File, Txt, my_arr()
Set FSO = CreateObject("Scripting.FileSystemObject")

Set Txt = FSO.CreateTextFile("base.txt", True)
Txt.Write("строка 1" & vbCrlf & "строка 2" & vbCrlf & "строка 3" & vbCrlf & "строка 4" & vbCrlf & "строка 5" & vbCrlf & "строка 6" )

Set File = FSO.OpenTextFile("base.txt", 1)

arr_Line = 0

Do Until File.AtEndOfStream ' пока наступит конец файла
	Redim Preserve my_arr(arr_Line)
	my_arr(arr_Line) = File.ReadLine ' Считываем строку
	arr_Line = arr_Line + 1
Loop

File.Close 'закрываем base.txt

MsgBox my_arr(3)

В данном примере я создаю текстовый файл «base.txt», в который записываю шесть строк. Далее мы открываем этот файл и создаём из его строк массив при помощи цикла Do … Loop и свойства AtEndOfStream (пока не достигнем конца файла), а так же метода ReadLine (Считывает строку из файла). В конце мы закрываем «base.txt» и выводим любой элемент массива.

Как видно из примера — ко всем методам и свойствам надо указывать объект, с которым работаем.

'********************************************************
'Урок VBScript №10:
'Работа с текстовыми документами - TextStream.
'file_4.vbs
'********************************************************

Dim FSO, File, Txt, File2
Set FSO = CreateObject("Scripting.FileSystemObject")

Set Txt = FSO.CreateTextFile("base.txt", True)
Txt.Write("строка 1" & vbCrlf & "строка 2" & vbCrlf)
Txt.WriteLine("строка 3")
Txt.WriteLine("строка 4")
Txt.WriteLine("строка 5")
Txt.WriteBlankLines 2
Txt.WriteLine("строка 6")

Set File = FSO.OpenTextFile("base.txt", 1)
Str1 = File.ReadAll
File.Close

Set File = FSO.OpenTextFile("base.txt", 1)
Str2 = File.ReadLine
File.SkipLine
Str3 = File.ReadLine
File.Skip(3)
Str4 = File.ReadLine
Str5 = File.Read(3)
File.Close

Set File2 = FSO.OpenTextFile("base2.txt", 2, True)
File2.Write("строка")
File2.Close

MsgBox Str1:MsgBox Str2:MsgBox Str3:MsgBox Str4:MsgBox Str5

В данном простеньком примере я использовал все методы TextStream. Стоит обратить внимание на то, что после использования метода «ReadAll» не получится использовать остальные методы чтения.

Так же при открытие текстового файла мы можем вносить в него изменения, что то же показано в примере.

На этом я считаю тему закрытой. До новых встреч!

Как прочитать или записать файл построчно на VBScript

Работа с текстовыми файлами по-прежнему актуальна. Эта небольшая заметка для того, чтобы быстро вспомнить как записать или прочитать текстовый файл на VBScript.

Чтение текстового файла на VBScript

Первый способ

Воспользоваться OpenTextFile. Например, прочитаем файл test.txt


Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.OpenTextFile("test.txt", 1)
Do While Not f.AtEndOfStream
  str = f.ReadLine
  
  ' Что-нибудь делаем с прочитанной строкой, например, выводим сообщение
  MsgBox str

Loop
f.Close

Полный синтаксис:

OpenTextFile(filename [,iomode [,create [,format]]])

filename — имя файла который необходимо прочитать

iomode — режим открытия файла (1 — только чтение, 2 — для записи (если уже существует, будет перезаписан), 8 — для добавления)

create — true — создать файл, если он не существует, false — не создавать

format — кодировка (-2 — кодировка ОС по умолчанию, -1 — Unicode, 0 — ASCII)

Непосредственно для чтения самих данных из текстового файла можно воспользоваться одним из следующих операторов:

  • Read — чтение определенного количества символов независимо от конца строки (количество символов указывается в скобках после оператора)
  • ReadLine — прочитать строку полностью до конца (до символов перевода строки), т.е. построчное чтение текстового файла
  • ReadAll — прочитать весь файл целиком за раз, включая символы переноса строки.

Эти же приемы чтения файла можно использовать и в следующем способе.

Второй способ

Использовать GetFile и OpenAsTextStream. Принцип чтения такой же как и в первом способе, просто другой вариант открытия файла.


Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile("test.txt")
Set ts = f.OpenAsTextStream(1)
Do While Not ts.AtEndOfStream
  str = ts.ReadAll
  
  ' Выводим на экран сообщение с содержимым файла
  MsgBox str

Loop
ts.Close

В скобках оператору OpenAsTextStream передается режим открытия файла iomode, который описан выше. Так же можно передать второй параметр, который будет означать кодировку format.

Запись текстового файла на VBScript

Создать и записать текстовый файл можно использовав один из трех операторов:

  1. CreateTextFile
  2. OpenTextFile
  3. OpenAsTextStream

Пример использования CreateTextFile


Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.CreateTextFile("test.txt", True)
f.WriteLine("тест1")
f.WriteLine("тест2")
f.Close

Второй параметр указывает перезаписать или нет файл, если он существует. Так же можно добавить 3-й параметр, который будет означать кодировку (True — Unicode и False — ASCII)

Пример использования OpenTextFile


Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.OpenTextFile("test.txt", 8, True)
f.WriteLine("тест3")
f.WriteLine("тест4")
f.Close

Здесь использован режим записи 8, т.е. добавление в существующий файл дополнительных строк, при этом, если файла не существует, он будет создан, т.к. третий параметр True.

Пример использования OpenAsTextStream


Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile("test.txt")
Set ts = f.OpenAsTextStream(2)
ts.WriteLine("тест1")
ts.WriteLine("тест2")
ts.Close

Здесь мы создаем файл и записываем в него текст. Если файл уже существовал, он будет перезаписан.

Так же как и с чтением файла, есть несколько вариантов какие операторы использовать для записи:

  • Write — записать текст в файл без символов перевода строки
  • WriteLine — записать текст в файл и добавить символы перевода строки (построчная запись в файл)
  • WriteBlankLines — записать в файл указанное количество пустых строк

Думаю, предложенных способов вполне достаточно для чтения / записи текстовых файлов. Пожелания и замечания оставляйте в комментариях ниже.

Объект FileSystemObject метод CreateTextFile — Как создать текстовый файл






Всем привет, с вами автор блога scriptcoding.ru. В этой статье мы подробно рассмотрим метод объекта FileSystemObject (fso) CreateTextFile, который показывает, как создавать текстовый файл. Метод CreateTextFile fso объекта позволяет получить доступ к другому объекту – TextStream, который в свою очередь отвечает за чтение и запись данных в созданный текстовый файл.

Прежде всего нужно сделать небольшое лирическое отступление… Смотрите, как создать текстовый файл рядовыми методами без программирования? В голову сразу приходит текстовый редактор Блокнот. Как и с любым каталогом, создать текстовый файл можно всего в два этапа: щелкаем правой кнопкой мыши по пустому месту на диске или в директории, далее из контекстного меню выбираем пункт «Создать/Текстовый документ«, далее просто задаем имя файла и все. Но, в большинстве случаев достаточно открыть программу Блокнот и уже оттуда сохранить текстовый файл в нужном месте.

Хорошо, теперь можно приступить к программированию, но сначала, давайте рассмотрим параметры метода CreateTextFile, который и показывает как создать текстовый файл:

CreateTextFile(Filename [,Overwrite[, Unicode]]) – Видим, что метод принимает три параметра, только первый параметр является обязательным.

  • Filename – Данный параметр содержит строку, которая определяет путь и имя для создаваемого текстового файла. Если указать только имя файла, то он будет создан в текущем каталоге (каталог, из которого произведен запуск сценария)
  • Overwrite – Параметр является необязательным. Может принимать логическое true – перезаписать файл, если он уже существует или false – возможность перезаписи отсутствует. По умолчанию, стоит значение false.
  • Unicode – Данный параметр не является обязательным, он определяет кодировку создаваемого текстового файла. Может принимать логическое значение true – формат Unicode или false – формат ASCII.






Хорошо, теперь можно приступить к программированию, но сначала небольшое пояснение.

Используя метод fso CreateTextFile, мы создаем не просто текстовый файл с данными, а произведем запись в поток. Поток – данное выражение присуще только файловой системе NTFS. Суть заключается в том, что к любому документу или даже диску можно привязать один или несколько потоков. Как создать новый текстовый файл. Например, идёт имя файла, двоеточие, имя потока. Поток, содержит имя и расширение.

Для эксперимента, откройте командную строку и пропишите следующий код:

echo "Hello, word">new.txt:potok.txt

В данном случае, к файлу new.txt будет привязан поток potok.txt и в него будет записана строка «Hello, word«. Вы увидите, что документ содержит нулевой размер, и при попытке открыть его с помощью простого блокнота вы ничего не увидите. Для этого в окне «Пуск/Выполнить» нужно прописать:

notepad new.txt:potok.txt

Что то подобное мы сделаем с помощью сценариев.

Для начала создадим сценарий createtextfile vbs и пропишем в нем следующие строки кода:

'**********************************************
' fso createtextfile 
' как создать текстовый файл
' запись данных в поток
' createtextfile.vbs
'**********************************************

Option Explicit
 
dim fso, c_file, t_file, WshShell, data, data_file
 
' создаем ссылку на объект Wscript.Shell
set WshShell = CreateObject("Wscript.Shell")
' создаем ссылку на объект Scripting.FileSystemObject
set fso=CreateObject ("Scripting.FileSystemObject")
 
'------------------------------------------------------------------------------------
' открываем текущий сценарий и записываем
' его содержимое в переменную data
'------------------------------------------------------------------------------------

set c_file=fso.OpenTextFile(WScript.ScriptFullName, 1, false)
data = c_file.ReadAll
c_file.Close()
 
'------------------------------------------------------------------------------------                                                                                                                                                                                                                            как создать новый текстовый файл

'------------------------------------------------------------------------------------
' создаем в текущей папке текстовый документ
' записываем в поток secret
' содержимое переменной data
'------------------------------------------------------------------------------------

set t_file=fso.CreateTextFile("my_file.txt:secret.txt", true)
t_file.WriteLine(data)
t_file.Close ()
 
'------------------------------------------------------------------------------------

' освобождаем ссылку на объект
set t_file = nothing
 
'------------------------------------------------------------------------------------
' открываем созданный документ и считываем
' данные из потока data
'------------------------------------------------------------------------------------

set t_file=fso.OpenTextFile(WshShell.CurrentDirectory & "\my_file.txt:secret.txt", 1, false)
data_file = t_file.ReadAll
t_file.Close()
 
'------------------------------------------------------------------------------------

' выводим содержимое потока
' если использовать для вывода функцию MsgBox
' будет показана только часть данных
WScript.Echo data_file

Тут стоит обратить внимание на следующую особенность, если мы попытаемся с помощью функции OpenTextFile открыть документ my_file.txt, не прописав после него через двоеточие имя потока, то получим ошибку:

Ввод данных за пределами файла

Скачать архив с примерами

Видимо, сервер Windows Script Host умеет определять, что в документе содержится скрытая информация. Также, вы заметили, что вместо функции MsgBox для вывода данных я использовал стандартную WScript.Echo. Не знаю почему, но MsgBox выводит только часть данных. Также, в данном примере я использовал собственную функцию CreateObject языка VBScript, а для освобождения ссылки на объект применил ключевое слово nothing.

А вот аналогичный сценарий createtextfile vbs, но уже на языке jscript:

//**********************************************
// fso createtextfile 
// как создать текстовый файл
// запись данных в поток
// createtextfile.js
//**********************************************
 
var fso, c_file, t_file, read_file, WshShell, data, data_file;
 
// создаем ссылку на объект Wscript.Shell
WshShell = WScript.CreateObject("Wscript.Shell");
// создаем ссылку на объект Scripting.FileSystemObject
fso=WScript.CreateObject ("Scripting.FileSystemObject");
 
//------------------------------------------------------------------------------------
// открываем текущий сценарий и записываем
// его содержимое в переменную data
//------------------------------------------------------------------------------------
 
c_file=fso.OpenTextFile(WScript.ScriptFullName, 1, false);
data = c_file.ReadAll();
c_file.Close();
 
//------------------------------------------------------------------------------------
 
//------------------------------------------------------------------------------------
// создаем в текущей папке текстовый документ
// записываем в поток secret
// содержимое переменной data
//------------------------------------------------------------------------------------
 
t_file=fso.CreateTextFile("my_file.txt:secret_1.txt", true);
t_file.WriteLine(data);
t_file.Close ();
 
//------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                    как создать новый текстовый файл
 
//------------------------------------------------------------------------------------
// открываем созданный документ и считываем
// данные из потока data
//------------------------------------------------------------------------------------
 
read_file=fso.OpenTextFile(WshShell.CurrentDirectory + "\\my_file.txt:secret_1.txt", 1, false);
data_file = read_file.ReadAll();
read_file.Close();
 
//------------------------------------------------------------------------------------
 
// выводим содержимое потока
WScript.Echo (data_file);

В этом примере, мы просто привязали еще один поток к файлу. Фактически, один поток будет содержать содержимое скрипта на языке vbscript (createtextfile vbs), а другой – содержимое на языке jscript (createtextfile js).

И так, мы рассмотрели как создать текстовый файл программным путем с помощью метода CreateTextFile и с помощью стандартных средств Windows.








excel — Создать новый файл Excel, который включает текущее имя папки в Excel vbscript

Я новичок в VBScript, но хотел знать, как автоматически создать новый файл Excel в папке, которая имеет формат «[имя папки] _Summary.xlsx? Я получаю файл, который будет создан, но мне пришлось жестко кодировать путь. Есть ли способ автоматически создать новый файл Excel в папке?

Вот что я имею до сих пор:

Sub Testing()

strFileName = "F:\U029\U029_Excel\U029_Excel_Summary.xlsx"

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True

Set objWorkbook = objExcel.Workbooks.Add()
objWorkbook.SaveAs (strFileName)

objExcel.Quit

End Sub

1

Joe

30 Май 2017 в 03:54

2 ответа

Лучший ответ

Убедитесь, что ваш файл VBS находится внутри папки, в которой вы хотите создать файл Excel. После запуска файла VBS вы можете удалить его из этой папки. Используйте этот код внутри файла VBS:

call fn_createExcel()

Function fn_CreateExcel()
    Dim objFso, objExcel, objWorkbook
    Set objFso = CreateObject("Scripting.FileSystemobject")
    strTemp = objFso.GetAbsolutePathName("")
    tempArr=Split(strTemp,"\")
    strFileName= strTemp&"\"&tempArr(ubound(tempArr))&"_Summary.xlsx"
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = True
    Set objWorkbook = objExcel.Workbooks.Add()
    objWorkbook.SaveAs strFileName

    objExcel.Quit
    Set objExcel = Nothing
    Set objFso = Nothing
End Function

РЕДАКТИРОВАТЬ 2: Создайте файл xlsm с кодом vba, как показано ниже (см. Также прилагаемое изображение). Поместите этот файл xlsm в папку, где вы хотите создать файлы Excel, откройте и запустите процедуру. После создания файла Excel вы можете удалить этот файл xlsm из этой папки.

Function fn_CreateExcel()
    Dim objExcel, objWorkbook, strFileName, strTemp
    strTemp = Application.ActiveWorkbook.Path
    tempArr = Split(strTemp, "\")
    strFileName = strTemp & "\" & tempArr(UBound(tempArr)) & "_Summary.xlsx"
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = True
    Set objWorkbook = objExcel.Workbooks.Add()
    objWorkbook.SaveAs strFileName

    objExcel.Quit
    Set objExcel = Nothing
End Function

Вы можете изменить код / логику в соответствии с вашими требованиями. Я пробовал этот код и работает.

2

Potatoツ
30 Май 2017 в 15:00

Вы можете попробовать этот vbscript:

Call Create_New_Excel_File()
'***********************************************************
Sub Create_New_Excel_File()
set fso = CreateObject("Scripting.FileSystemObject")
Path_Folder = fso.GetParentFolderName(WScript.ScriptFullName)
Array_Folder_Name = split(Path_Folder,"\")
Folder_Name = Array_Folder_Name(Ubound(Array_Folder_Name))
strFileName = Path_Folder & "\" & Folder_Name & "_Summary.xlsx"
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
objWorkbook.SaveAs(strFileName)
objExcel.Quit
End Sub
'***********************************************************

1

Hackoo
30 Май 2017 в 02:51

44251934

vbscript — Создайте текстовый файл в% temp% и напишите в него содержимое с помощью vbs

По сути, я хочу создать новый файл и записать его в каталог на ПК, на который указывает переменная %TEMP%. Однако приведенный ниже исправленный код не работает:

Dim oFile
Dim shell
Set oShell = CreateObject("WScript.Shell")
user = oShell.ExpandEnvironmentStrings("%Temp%")
Set oFile = CreateObject("Wscript.Shell")
Set oFile = oFile.CreateTextFile("%Temp%\d.txt")
oFile.WriteLine "here is my contant"
oFile.Close

Сообщение об ошибке:

ошибка времени выполнения
строка №: 3
требуется объект

Dim fso, tf
Set fso = CreateObject("Scripting.FileSystemObject")
FileName = "%TEMP%\myfile.txt"
Set tf = fso.CreateTextFile(FileName, True)

Если я использую имя файла «C: \ myfile.txt», он работает нормально.

Сообщение об ошибке:

Путь не найден

-1

mini kumari

15 Окт 2018 в 18:43

2 ответа

Лучший ответ

В VBA вы можете просто использовать Environ("TEMP") для расширения переменной среды — если это не работает в VBScript, вам может потребоваться привязать объект WScript.Shell и вместо этого использовать свойство ExpandEnvironmentStrings, например так:

Set oShell = CreateObject("WScript.Shell")
FileName = oShell.ExpandEnvironmentStrings("%TEMP%") & "\myfile.txt"
Set oShell = Nothing

Вот «полностью исправленный» код:

'Declare variables/objects first
Dim fso AS Object, oFile AS Object
Dim oShell AS Object, FileName AS String

'This bit turns "%TEMP%" into a real file path
Set oShell = CreateObject("WScript.Shell")
FileName = oShell.ExpandEnvironmentStrings("%Temp%\d.txt")
Set oShell = Nothing 'Tidy up the Objects we no longer need

'This bit creates the file
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.CreateTextFile(FileName)
oFile.WriteLine "here is my content"
oFile.Close
Set oFile = Nothing 'Tidy up the Objects we no longer need
Set fso = Nothing 'Tidy up the Objects we no longer need

0

Chronocidal
16 Окт 2018 в 07:44

Вы можете использовать Environ("temp"), чтобы написать C:\Users\[username]\AppData\Local\Temp

0

oxwilder
15 Окт 2018 в 15:50

52820328

Создать файл с помощью VBScript, Powershell и командной строки (cmd)

Описание

В этой статье я собираюсь привести примеры кода для создания файла с помощью VBScript, а также команды для создания файла в Powershell и командной строки (cmd).

Резюме

Создать файл с использованием кода VBScript

Вы можете легко создать новый файл , используя следующий vbscript , выполните следующие шаги, запустите файл VB Script .

1.Скопируйте приведенный ниже пример кода VB Script и вставьте его в блокнот или редактор VBScript .
2. Измените значение для strDirectory и strFile , если вы хотите указать свой собственный путь и имя, в противном случае просто оставьте его.
3. Сохраните файл с расширением .vbs , например: CreateFile.vbs
4. Дважды щелкните файл сценария vb (или запустите этот файл из окна команд), чтобы создать новый файл.

Щелкните следующую ссылку, чтобы получить исходный код vbscript в виде файла Загрузить CreateFile.vbs

 'CreateFile.vbs
'Пример VBScript для создания файла.
Автор: https://www.morgantechspace.com/
'------------------------------------------------- ----- '

Вариант Явный
Тусклый objFSO, objFolder, objShell, objFile
Dim intAnswer, strDirectory, strFile

strDirectory = "C: \ UsersAdministratorDesktop"
strFile = "TestVBS.txt"

'Создание объекта файловой системы
Установите objFSO = CreateObject ("Scripting.FileSystemObject ")

'Убедитесь, что указанная папка strDirectory существует или нет
Если objFSO.FolderExists (strDirectory) Тогда
   Установите objFolder = objFSO.GetFolder (strDirectory)
Еще
Установите objFolder = objFSO.CreateFolder (strDirectory)
WScript.Echo "Новая папка" & strDirectory & "'Created"
Конец, если

Если objFSO.FileExists (strDirectory & "" & strFile) Тогда

intAnswer = _
    Msgbox ("Файл '" & strFile & "' уже существует. Вы хотите заменить существующий файл?", VbYesNo, "Переопределить файл")

Если intAnswer = vbYes Тогда
Установите objFile = objFSO.CreateTextFile (strDirectory & "" & strFile)
      Wscript.Echo "Новый файл" & strFile & "'успешно создан VBScript"
Еще
     ' ничего не случится
Конец, если

Еще
Установите objFile = objFSO.CreateTextFile (strDirectory & "" & strFile)
      Wscript.Echo "Новый файл" & strFile & "'успешно создан VBScript"
Конец, если

Если err.number = vbEmpty, то
  'Процесс создания файла завершен
Иначе WScript.echo "Ошибка VBScript:" & номер ошибки
Конец, если

WScript.Quit

'Конец VBScript для создания файла с использованием VBScript
 

Создайте файл с помощью VBScript, указав имя файла как динамический ввод

Вы можете легко создать новый файл , используя следующий vbscript , указав имя файла в качестве динамического ввода, выполните следующие шаги, запустите файл VB Script .

1. Скопируйте приведенный ниже код VB Script и вставьте его в блокнот или редактор VBScript .
2. Измените значение для strDirectory , если вы хотите указать свой собственный путь, в противном случае просто оставьте его.
3. Сохраните файл с расширением .vbs , например: CreateFileByDynamicFileName.vbs
4. Дважды щелкните файл сценария vb (или запустите этот файл из окна команд), чтобы создать новый файл.
5. Затем в окне ввода будет предложено ввести имя файла , ввести новое имя файла и щелкнуть ОК с по создать новый файл.

Щелкните следующую ссылку, чтобы получить исходный код vbscript в виде файла. Загрузить CreateFileByDynamicFileName.vbs

 'CreateFileByDynamicFileName.vbs
'Пример VBScript для создания файла.
Автор: https://www.morgantechspace.com/
'------------------------------------------------- ----- '

Вариант Явный
Тусклый objFSO, objFolder, objShell, objFile
Dim intAnswer, strDirectory, strFile

strDirectory = "C: \ UsersAdministratorDesktop"

Делать
   strFile = InputBox ("Пожалуйста, введите имя файла")
   Если strFile = "", тогда
      Msgbox "Имя файла не введено"
   конец, если
Цикл до strFile <> ""


'Создание объекта файловой системы
Установите objFSO = CreateObject ("Scripting.FileSystemObject ")

'Убедитесь, что указанная папка strDirectory существует или нет
Если objFSO.FolderExists (strDirectory) Тогда
   Установите objFolder = objFSO.GetFolder (strDirectory)
Еще
Установите objFolder = objFSO.CreateFolder (strDirectory)
WScript.Echo "Новая папка" & strDirectory & "'Created"
Конец, если

Если objFSO.FileExists (strDirectory & "" & strFile) Тогда

intAnswer = _
    Msgbox ("Файл '" & strFile & "' уже существует. Вы хотите заменить существующий файл?", VbYesNo, "Переопределить файл")

Если intAnswer = vbYes Тогда
Установите objFile = objFSO.CreateTextFile (strDirectory & "" & strFile)
      Wscript.Echo "Новый файл" & strFile & "'успешно создан VBScript"
Еще
     ' ничего не случится
Конец, если

Еще
Установите objFile = objFSO.CreateTextFile (strDirectory & "" & strFile)
      Wscript.Echo "Новый файл" & strFile & "'успешно создан VBScript"
Конец, если

Если err.number = vbEmpty, то
  'Процесс создания файла завершен
Иначе WScript.echo "Ошибка VBScript:" & номер ошибки
Конец, если

WScript.Quit

'Конец VBScript для создания файла с помощью VBScript
 

Создать файл с помощью командлета PowerShell

Вы можете создать новый файл или папку с помощью командлета New-Item .

Используйте эту команду для создания нового файла в PowerShell.

 Новый элемент C: Файл типа UsersAdministratorDesktoptestfile.txt
 

Используйте эту команду для создания новой папки в PowerShell.

 Новый элемент C: каталог типа UsersAdministratorDesktoptestFolder
 

Создать файл из командной строки

Нет прямой команды для создать новый файл , например mkdir для создания новой папки. здесь я собираюсь создать новый файл, используя команду copy con filename.txt .

Следуйте инструкциям, чтобы создать новый файл из входных данных командной строки :

1. Сначала нам нужно изменить текущее местоположение на новое, где мы хотим создать новый файл. мы можем добиться этого, используя команду CD .
Введите эту команду и нажмите Enter.

 компакт-диск "C: \ UsersAdministratorDesktop"
 

2. Введите эту команду , нажмите Введите

 скопируйте файл con testfile.Z . 
5. Затем щелкните Введите , чтобы сохранить новый файл.

VBScript - Файловый ввод / вывод, часть 2

На прошлой неделе я представил язык Visual Basic Scripting Edition

(VBScript) и объяснил, почему он важен. На этой неделе мы перейдем к базовому кодированию

, начиная с ввода и вывода файлов (т. Е. Чтения и записи

в / из файлов).

Как упоминалось в статье на прошлой неделе, VBScript - это язык, который объединяет

(или склеивает) различные компоненты технологий сценариев Microsoft

вместе.Эти компоненты состоят из

объектов автоматизации (COM-объектов), которые открывают различные части приложения

разработчику. Объекты автоматизации - это то, что позволяет

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

открывать и закрывать файлы для различных целей.

Чтобы открыть / создать файл в VBScript, необходимо создать дескриптор объекта

FileSystemxxx, а затем использовать различные методы для управления файлом.

Например, предположим, что мы хотим прочитать список серверов из файла

. Чтобы убедиться, что мы читаем правильное имя из файла, давайте

напечатаем имя файла на экране. Помните из моей предыдущей статьи

о Wscript и Cscript, если вы используете Wscript, то для каждой строки

, отображаемой на экране, вы получите окно сообщения, что у вас будет

, чтобы нажать «ОК», чтобы продолжить . Но если вы используете Cscript, весь ваш вывод

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

.Итак, давайте скопируем следующий код в блокнот и

сохраним файл в c: \ scripts \ readFromFile.vbs.

inputFile = "c: \ scripts \ servers.txt",

------------------- Начать копирование ------------ -------

Установить objFSO = CreateObject ("Scripting.FileSystemObject")

Установить objTextFile = objFSO.OpenTextFile ("serverList.txt", 1)

До тех пор, пока objTextFile.AreamtEndOfxt Readline

Wscript.Echo "Имя сервера:" & strComputer

Loop

--------------------- Конец копирования --------- ----------

Кроме того, создайте еще один текстовый файл с именем c: \ scripts \ serverList.txt

с именем пары серверов в нем, с одним именем сервера в строке

, как показано ниже:

serverName1

serverName2

serverName3

Затем давайте откроем окно командной строки и изменим каталоги на

c: \ script. Теперь введите следующее:

cscript readFromFile.vbs

Если вы все сделали правильно, вы должны получить результат, который выглядит

, как:

----------------- - Начать выход -------------------

Microsoft (R) Windows Script Host версии 5.6

Авторские права (C) Microsoft Corporation 1996-2001. Все права защищены.

Имя сервера: serverName1

Имя сервера: serverName2

Имя сервера: serverName3

--------------------- End Ouput ------- ------------

По сути, этот код создал дескриптор под названием «objFSO» (это имя

, которое я выбрал) для объекта с именем «Scripting.FileSystemObject». Это объект

, позволяющий работать с файловой системой. Затем мы создали дескриптор

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

"Set objTextFile = objFSO.OpenTextFile ("serverList.txt", 1) "

Это создало дескриптор нашего файла с именем

.

Этот рассказ «VBScript - ввод / вывод файлов, часть 2» был первоначально опубликован ITworld.

Copyright © 2003 IDG Communications, Inc.

Сценарий VBS для создания zip-архива для файла или папки в Windows с использованием ТОЛЬКО встроенных возможностей Windows · GitHub

Установите Args = Wscript.Аргументы
источник = Args (0)
цель = Args (1)
tempDir = Пусто
Функция GetFullPath (путь)
Дим fso
Установить fso = CreateObject ("Scripting.FileSystemObject")
GetFullPath = fso.GetAbsolutePathName (путь)
Конечная функция
Функция GetFSElementType (путь ByVal)
с CreateObject ("Scripting.FileSystemObject")
путь = .GetAbsolutePathName (путь)
Выбрать Case True
Футляр.FileExists (путь): GetFSElementType = 1
Case .FolderExists (путь): GetFSElementType = 2
Иначе случай: GetFSElementType = 0
Выбор конца
конец с
Конечная функция
Функция IsFile (путь)
IsFile = (GetFSElementType (путь) = 1)
Конечная функция
Функция IsFolder (путь)
IsFolder = (GetFSElementType (путь) = 2)
Конечная функция
Функция FSExists (путь)
FSExists = (GetFSElementType (путь) <> 0)
Конечная функция
Функция GetNameWithoutExtension (DriveSpec)
Дим fso
Установите fso = CreateObject ("Scripting.FileSystemObject ")
GetNameWithoutExtension = fso.GetBaseName (DriveSpec)
Конечная функция
Функция createAndCopyFile (FileDriveSpec)
Дим fso
Установить fso = CreateObject ("Scripting.FileSystemObject")
tempDir = fso.GetParentFolderName (FileDriveSpec)
If Right (tempDir, 1) <> "\" Тогда
tempDir = tempDir & "\"
Конец Если
tempDir = tempDir & fso.GetBaseName (FileDriveSpec) & "\"
Если не fso.FolderExists (tempDir), то
fso.CreateFolder tempDir
Конец Если
fso.CopyFile FileDriveSpec, tempDir, True
createAndCopyFile = tempDir
Конечная функция
'изменить относительный путь на абсолютный
source = GetFullPath (исходный код)
цель = GetFullPath (цель)
Если IsFile (источник), то
'Если источником является файл, создайте папку с таким же именем файла и скопируйте файл в папку
source = createAndCopyFile (исходный код)
Остальное
Wscript.Echo «Указанный исходный файл не существует»
Wscript.Quit
Конец Если
'убедитесь, что исходная папка имеет \ в конце
If ((IsFolder (source)) And (Right (source, 1) <> "\")) Then
source = source & "\"
Остальное
Wscript.Echo «Указанная исходная папка не существует»
Wscript.Quit
Конец Если
Установить objFSO = CreateObject ("Scripting.FileSystemObject")
Установить zip = objFSO.OpenTextFile (target, 2, vbtrue)
'это заголовок для обозначения файла как zip
застежка-молния.Напишите "PK" & Chr (5) & Chr (6) & String (18, Chr (0))
застежка-молния закрыть
Установить молнию = ничего
wscript.sleep 500
Установить objApp = CreateObject ("Shell.Application")
intSkipped = 0
'Переберите элементы в папке и используйте CopyHere, чтобы поместить их в zip-папку
Для каждого объекта objItem в objApp.NameSpace (источник) .Items
Если objItem.IsFolder, то
Установить objFolder = objFSO.GetFolder (objItem.Path)
', если эта папка пуста, пропустите ее, так как она не может сжать пустые папки
Если objFolder.Files.Count + objFolder.SubFolders.Count = 0, то
intSkipped = intSkipped + 1
Остальное
objApp.NameSpace (цель) .CopyHere objItem
Конец Если
Остальное
objApp.NameSpace (цель) .CopyHere objItem
Конец Если
Далее
intSrcItems = objApp.NameSpace (источник) .Items.Count
wscript.sleep 250
'задержка до тех пор, пока не станут доступны хотя бы предметы на верхнем уровне
До тех пор, пока objApp.NameSpace (target) .Items.Count + intSkipped = intSrcItems
wscript.sleep 200
Петля
'очистка
'Удаляем временный каталог, созданный для файла
Если не IsEmpty (tempDir), то
tempDir = left (tempDir, len (tempDir) -1)
objFSO.DeleteFolder tempDir
Конец Если
Установить objItem = ничего
Установить objFolder = ничего
Установить objApp = ничего
Установить fso = ничего
Установить objFSO = ничего

объектов - vbScript - Создание файла журнала с помощью vbScript...

vbScript - создание файла журнала с использованием классов vbScript

До выхода на пенсию я отвечал за большую часть корпоративных данных в нашем центре управления. Вся сантехника написана на vbScript. Как известно любому программисту по обслуживанию, файлы журналов являются жизненно важным ключом к выявлению и устранению проблем. Поскольку я в основном ленив, мне не нравится кодировать один и тот же процесс снова и снова, поэтому я создал код регистрации, который можно было бы включить в любой сценарий. Скрипты запускались автоматически с периодичностью от одного раза в пять минут до одного раза в неделю или даже раз в месяц.В зависимости от активности файлы журналов могли стать очень большими и неуправляемыми, поэтому я добавил возможность создания отдельных файлов журналов в зависимости от дня, месяца или даже года. Чтобы имена были стандартизированы, я сделал имя файла журнала по умолчанию таким же, как у сценария, который его создавал, за исключением расширения файла .log , а также настраиваемого тега, основанного на типе журнала. Журналы могут быть ежедневными, ежемесячными, годовыми или вечными, а имена файлов изменяются следующим образом:

  ежедневно  ГГГГ-ММ-ДД.бревно
ежемесячно  ГГГГ-ММ.log
ежегодно  YYYY.log
навсегда  .log  

Как и в полной vb.Net, в vbScript вы можете определять классы и создавать их экземпляры во время выполнения. У вас не будет полного набора функций, которые вы найдете в vb.Net, но их будет достаточно, чтобы быть полезным. Класс в vbScript определяется следующим образом

  Класс имя класса
    .
    .
    .
Конец класса  

Внутри вы определяете свойства и методы, опять же, аналогично vb.Нетто но с ограничениями. Например, в vbScript нет перегрузки функций. Свойства и методы могут быть объявлены общедоступными (доступны вне класса) или закрытыми (доступны только внутри класса). Свойства могут быть доступны для чтения / записи или только для чтения. Для объявления государственной собственности вы делаете

  Общедоступная переменная  

, и вы ссылаетесь на это свойство как на obj.varname , как и следовало ожидать. Пуристы скажут, что никогда не следует декларировать общественную собственность. Вы должны объявить частное свойство, а затем получить к нему доступ с помощью интерфейсов Let / Set / Get.Например

  Класс myClass

    Частное m_Name

    Публичное свойство Let Name (val)
        m_Name = val
    Конечная собственность

    Публичная собственность Получить имя ()
        Имя = m_Name
    Конечная собственность

Конец класса  

Это дает вам общедоступное свойство Name , которое доступно для чтения / записи. Чтобы сделать его доступным только для чтения, просто удалите блок Let . Set - это то же самое, что и Let , за исключением того, что он используется для свойств объекта. Наконец, я хочу обсудить конструкторы и деструкторы.Любой код, который вы хотите запустить при создании объекта, должен входить в подпрограмму

.

  Частный подкласс_Initialize ()
    .
    .
    .
Концевой переводник  

, и любая очистка, которую вы хотите выполнить при уничтожении объекта, должна проходить внутри

.

  Частный под-класс_Terminate ()
    .
    .
    .
Концевой переводник  

Методы также могут быть общедоступными или частными. Вы заметите, что перед моей частной собственностью стоит префикс m_ . Это просто соглашение, которому я следую, чтобы визуально отличать общедоступные свойства и методы от частных.

Вот вам и краткое руководство. Позвольте мне кратко коснуться того, как использовать класс регистратора.

Вы создаете экземпляр объекта регистратора с помощью

.

  Установить регистратор = Новый clsLogger  

, а затем, если вам не нужен тип журнала по умолчанию, вы устанавливаете тип либо

  logger.LogType = "daily"  

или

  регистратор.Открыть («ежедневно»)  

Если вы ожидаете низкой активности регистратора, вы можете использовать первое, и файл журнала будет открываться и закрываться для каждой записи.Если вы ожидаете более высокой активности, вы можете использовать последний и вручную закрыть его, когда закончите, или позволить деструктору закрыть файл. Вы записываете события в файл журнала одним из

  logger.Write (текст)
logger.Tee (назначение, текст)  

Первый записывает текст в файл журнала. Второй записывает его либо в файл журнала (dest = "F"), либо в консоль (dest = "C"), или в оба (dest = "B"). Строка text может содержать символы vbCrLr или, что более удобно, \ n , которые будут переведены в vbCrLf.Каждая строка записывается с префиксом текущей даты и времени как ГГГГ-ММ-ДД ЧЧ: ММ: SS . Вы также можете написать разделительную линию на

  регистратор. Разделитель ()  

, который записывает строку вида

  25.07.2018 10:38:00 -------------------- D: \ utils \ vb.wsf ЗАПУСК НА JIM-PC  

[решено] Вывести переменную в файл .txt из VBS - IT Programming

Good Day All,

Итак, у меня возникла проблема с созданием сценария VBscript, который извлекает общий размер диска из системы и выводит это значение (вместе со строками текста) в файл.txt файл. Я попытался вывести текст в текстовом поле, и вся информация была предоставлена ​​именно так, как я хотел, но после преобразования ее для вывода файла .txt у меня возникла проблема: я не получаю никаких ошибок из WSH, и файл создается с помощью все остальные строки текста. единственная проблема в том, что переменная и / или ее значение явно отсутствуют, как если бы сценарий дошел до этой точки и решил: «Да, так что ... Я просто пропущу это». ниже я вставил соответствующий код, любая помощь будет БОЛЬШЕ признательна.

strComputer = "."
'Получение доступа к информации о диске
Set objWMIService = GetObject _
("winmgmts: \\" & strComputer & "\ root \ cimv2")
Set colItems = objWMIService.ExecQuery _
("Выбрать * из Win32_LogicalDisk = WHERE C: ")

'установить переменную для информации о диске
Set objTotal = Int (objItem.Size / 1048576)

' создать текстовый файл
Set objFSO = CreateObject (" Scripting.FileSystemObject ")
Set objFile = objFSO.CreateTextFile ("C: \ test \ diskpart10.txt", 2, true)

'вывод в файл
Для каждого объекта objItem в colItems
{Несоответствующий код для этого примера все элементы отображаются в формате "objFile.WriteLine ()" }
objFile.WriteLine ("create partition primary size =" & objTotal)
{Нерелевантный код для этого примера: все элементы отображаются в формате "objFile.WriteLine ()"}

objFile.Close
Далее


Булава

OP

Mike400

Этот человек - проверенный профессионал.

подтвердите ваш аккаунт
чтобы ИТ-специалисты увидели, что вы профессионал.

8 января 2017 г., 21:29 UTC

Вот и все. Обратите внимание, что у меня все еще закомментирован оператор On Error Resume Next. Основная ошибка заключалась в цитировании строки в предложении WHERE DeviceID.

VB.net

 Опция Явная
Тусклый объект objWMIService, objItem, colItems, strComputer
Тусклый objFSO, objFile, objTotal

'При ошибке Возобновить Далее
strComputer = "."

'Получение доступа к информации о диске
Установите objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2")
Установите colItems = objWMIService.ExecQuery ("Выберите * из Win32_LogicalDisk, ГДЕ DeviceID =" "C:" "")

'создать текстовый файл
Установите objFSO = CreateObject ("Scripting.FileSystemObject")
Установите objFile = objFSO.CreateTextFile ("C: \ test \ diskpart10.txt", 2, true)

'вывод в fila
для каждого объекта в colItems
    если objItem.DeviceID = "C:", то
        'установить переменную для информации о диске
        objTotal = int (objItem.Размер / 1048576)

        objFile.WriteLine ("выберите диск 0")
        objFile.WriteLine («очистить все»)
        objFile.WriteLine ("преобразовать gpt")
        objFile.WriteLine ("создать раздел размером efi = 499")
        objFile.WriteLine ("присвоить букву = W:")
        objFile.WriteLine ("быстрый формат fs = fat32 label = 'Boot'")
        objFile.WriteLine ("создать раздел msr size = 128")
        objFile.WriteLine ("создать основной размер раздела =" & objTotal)
        objFile.WriteLine ("присвоить букву = C:")
        objFile.WriteLine ("format quick fs = ntfs label = 'Windows'")
        objFile.WriteLine («создать первичный раздел»)
        objFile.WriteLine ("присвоить букву = E:")
        objFile.WriteLine ("format quickfs = ntfs label = 'Recovery'")
        objFile.WriteLine («выход»)
    конец, если
следующий
objFile.close
 

Понимание VBScript: объект TextStream

В этом месяце я продолжаю обсуждение модели объекта файловой системы (FSO), рассматривая объект TextStream.Я покажу вам, как получить доступ к этому объекту, чтобы вы могли читать и писать в текстовые файлы. Однако, прежде чем обсуждать объект TextStream, я хочу обсудить, почему вы можете столкнуться с предупреждением безопасности, если вы запустите код VBScript, который использует объекты в модели FSO.

Последствия для безопасности при использовании VBScript и FSO
Microsoft изначально проектировала VBScript как инструмент, позволяющий сделать веб-страницы более интерактивными и отзывчивыми. Таким образом, VBScript подвергался нескольким ограничениям безопасности, включая невозможность доступа к локальной файловой системе.Однако VBScript быстро превратился из простого инструмента для написания веб-страниц в инструмент общего назначения для автоматизации программного обеспечения на основе COM.

Затем Microsoft представила модернизированную версию command.com для ОС Windows под названием Windows Script Host (WSH). Поскольку VBScript является одним из языков, поддерживаемых WSH, VBScript необходимо было получить доступ к элементам локальной файловой системы, чтобы код VBScript, выполняемый в оболочке Windows, мог читать и записывать в локальные файлы, а также получать доступ к памяти, базам данных и другим ресурсам.

В ответ на потребность в доступе к файловой системе Microsoft разработала модель FSO. Эта модель дает авторам сценариев инструменты, необходимые для управления элементами файловой системы в коде VBScript. Однако, если вы попытаетесь выполнить код VBScript с объектами FileSystemObject изнутри веб-страницы, вы столкнетесь с предупреждением безопасности из-за корней VBScript. Вы можете выполнять код VBScript только с объектами FileSystemObject из среды WSH (т. Е. Скрипт рабочего стола).Доступ к файловой системе из сценария рабочего стола считается безопасным, потому что авторы сценария должны полностью осознавать поведение сценария перед его запуском.

Доступ к объекту TextStream
Как следует из названия, TextStream - это объект, представляющий поток текста из текстового файла в файловой системе. Другими словами, объект TextStream - это логическое представление содержимого текстового файла. (Модель FSO не поддерживает двоичные файлы. Для получения дополнительной информации см. Эксклюзивную для Интернета боковую панель «Почему не двоичные файлы?» На веб-сайте Win32 Scripting Journal по адресу http: // www.win32scripting.com.) Для доступа к объекту TextStream можно использовать метод CreateTextFile или OpenTextFile объекта FileSystemObject или метод OpenAsTextStream объекта File.

Использование метода CreateTextFile
Метод CreateTextFile объекта FileSystemObject создает новый текстовый файл с указанным вами именем. Его синтаксис -

.

 fsoObject.CreateTextFile _
(имя файла _
\ [, перезаписать \ [, unicode \] \]) 

где fsoObject - объект FileSystemObject (или Folder), а filename - обязательный аргумент, указывающий имя файла, который вы хотите создать.Например, код

 Установить fso = CreateObject _
("Scripting.FileSystemObject")
Установите ts = fso.CreateTextFile _
("foo.txt") 

создает текстовый файл с именем foo.txt. CreateTextFile имеет два необязательных аргумента: перезаписать и unicode . По умолчанию CreateTextFile создает файлы ASCII, но не перезаписывает существующие файлы. Устанавливая для аргумента перезаписи значение True, вы указываете CreateTextFile перезаписать существующий файл.Устанавливая для аргумента unicode значение True, вы указываете CreateTextFile создать файл Unicode.

Использование метода OpenTextFile
Метод OpenTextFile объекта FileSystemObject открывает существующий файл в текстовом режиме. Его синтаксис -

.

 fsoObject.OpenTextFile (имя_файла _
\ [, iomode \ [, создать \ [, _ format \] \] \]) 

где iomode, create, и format - необязательные аргументы .

Аргумент iomode. Вы используете аргумент iomode для установки одного из трех режимов ввода-вывода:

  • ForReading (значение 1). Открывает файл только для чтения (т. Е. Не разрешает запись). Этот режим установлен по умолчанию.
  • ForWriting (значение 2). Открывает файл и перезаписывает его содержимое (т. Е. Не позволяет читать).
  • ForAppending (значение 8). Открывает файл и записывает его в конец (т.е., не позволяет читать).

Если вы используете ForReading, вы можете читать только вперед. Вы можете пропускать строки, но не можете переместить указатель файла назад. ForWriting ведет себя еще более ограничительно: он немедленно обрезает файл и перезаписывает его содержимое. Таким образом, безобидный, казалось бы, код

 Установить ts = fso.OpenTextFile _
("foo.txt", ForWriting) 

стирает все существующее содержимое в файле foo.txt. Использование OpenTextFile в режиме ввода-вывода ForWriting эквивалентно использованию CreateTextFile с опцией перезаписи.Как и ForWriting, ForAppending позволяет выполнять запись в файл, но со значительной разницей: ForAppending сохраняет существующее содержимое файла. ForAppending открывает файл, перемещает указатель файла в конец и добавляет новый текст к существующему тексту.

Как видите, объект TextStream полезен, но ограничен. Вы можете добавить новый текст, но только в начале файла (если вы перезаписываете весь файл) и в конце файла. Ни один из режимов ввода-вывода не позволяет вставлять текст в середину текстового потока или перезаписывать только часть файла.Кроме того, вы не можете указать более одного iomode в одном экземпляре TextStream. Например, нельзя использовать код

 Установить ts = fso.OpenTextFile _
("foo.txt", ForReading _
 Или ForWriting) 

Аргумент создания. Вы используете аргумент create для создания файла на лету, если указанный файл не существует. По умолчанию ошибка возникает, если OpenTextFile не находит файл, указанный в аргументе имени файла.Однако, если вы установите для аргумента create значение True, OpenTextFile создаст указанный файл, а не сгенерирует ошибку.

Если вы хотите избежать ошибки несуществующего файла, но не хотите создавать файл, вы можете использовать код

 Если не fso.FileExists _
("foo.txt") Тогда
WScript.Quit
Конец, если
Установите ts = fso.OpenTextFile
("foo.txt") 

В этом коде оператор If ... Then ... Else сообщает сценарию о завершении работы, если указанный файл не существует.

Аргумент формата. Вы используете аргумент формата, чтобы указать формат символа. Вы можете установить один из трех форматов:

  • TristateUseDefault (значение 2), который открывает файл с использованием формата вашей системы по умолчанию.
  • TristateTrue (значение 1), который открывает файл в формате Unicode.
  • TristateFalse (значение 0), который открывает файл в формате ASCII

ASCII является настройкой по умолчанию, поэтому, если вы хотите использовать этот формат, вам не нужно включать аргумент формата в свой код.

Метод OpenAsTextStream
Метод OpenAsTextStream объекта File открывает существующий файл. Его синтаксис -

.

 fileObject.OpenAsTextStream _
(\ [iomode, \ [формат \] \]) 

где fileObject - это объект File, представляющий файл, который вы хотите открыть. Таким образом, вам необходимо получить доступ как к объекту FileSystemObject, так и к объекту File, прежде чем использовать этот метод с таким кодом, как

 Установить fso = CreateObject _
("Скриптинг.FileSystemObject ")
Установите f = fso.GetFile ("foo.txt")
Установите ts = f.OpenAsTextStream () 

OpenAsTextStream предлагает необязательные аргументы iomode и format.

Доступ к свойствам и методам объекта TextStream
После доступа к объекту TextStream вы можете использовать его свойства и методы. Объект TextStream позволяет работать только с текстовыми файлами, а не с двоичными файлами; поэтому, когда вы работаете со свойствами и методами, вам нужно думать в терминах строк текста и количества символов, а не в терминах фрагментов данных заданного размера.

Как показано в таблице 1, вы можете использовать четыре свойства. Чтобы получить доступ к этим свойствам только для чтения, вы используете синтаксис

 tsObject.property 

где tsObject - это имя объекта TextStream, а свойство - это имя свойства, к которому вы хотите получить доступ.

Свойства AtEndOfLine и AtEndOfStream сообщают вам, находится ли указатель файла в конце строки или текстового потока соответственно.Эти свойства возвращают значение True, если указатели файлов находятся в конце, и False, если это не так. AtEndOfLine полезен для проверки границы строки, когда вы пропускаете блоки символов.

Свойства Column и Line сообщают вам о текущей позиции указателя файла. Свойство Column возвращает номер столбца; свойство Line возвращает номер строки.

Как показано в таблице 2, вы можете получить доступ к девяти методам. Эти методы позволяют читать, записывать, перемещаться по файлам и закрывать их.

Чтение из файлов
Чтобы прочитать содержимое файла, вы можете использовать методы Read, ReadLine и ReadAll. Метод Read заполняет строку указанным вами количеством символов. Его синтаксис -

.

 tsObject.Read (символы) 

где символов - количество символов, которое вы хотите прочитать.

Метод ReadLine заполняет строку содержимым текущей строки, считывая текст из текущей позиции указателя файла до следующей новой строки, но не включая ее.Таким образом, ReadLine читает до символа новой строки, но возвращаемая строка не включает этот символ. Поскольку ReadLine читает всю строку, а не только несколько символов из нее, его синтаксис не включает аргумент символов:

 tsObject.ReadLine 

ReadLine полезен для чтения всех строк файла в индексы массива, как показывает код в листинге 1. Этот код начинается с объявления константы ForReading и двух переменных: arrText (неинициализированный динамический массив) и iUpperBound (целое число, используемое позже для инициализации массива).Затем код создает экземпляр объекта FileSystemObject и использует метод OpenTextFile этого объекта для открытия существующего файла с именем foo.txt. Код устанавливает для необязательного аргумента iomode значение ForReading, что означает, что вы можете читать только из foo.txt.

После установки iUpperBound на 0 код использует оператор While ... Wend для циклического перебора каждой строки в foo.txt. В каждой строке код инициализирует массив, считывает строку в индекс массива, а затем устанавливает новую верхнюю границу и индекс.Код закрывает файл, когда достигает конца текстового потока. (Если вы не знакомы с массивами VBScript и оператором While ... Wend, см. Мои столбцы за июль 1999 г. и сентябрь 1999 г. соответственно.)

Этот пример дополнительно демонстрирует, что объект TextStream полезен, но ограничен. Неспособность методов Read и ReadLine установить указатель файла в определенной позиции в тексте снижает их полезность, поскольку вы не можете перемещаться по файлу назад. Частичным решением этой проблемы является метод ReadAll с синтаксисом

 цОбъект.ПрочитатьВсе 

Этот метод считывает все строки сразу и возвращает их одной строкой. ReadAll эффективен, потому что выполняет чтение с одним доступом. Например, код

 Установить ts = fso.OpenTextFile _
("foo.txt", ForReading)
buf = ts.ReadAll 

помещает весь текст в foo.txt в одну строку, которая хранится в буфере памяти. В буфере памяти вы можете легко перемещаться вперед и назад по строке.Вы также можете использовать функции манипулирования строками для извлечения или изменения частей строки. (Информацию о функциях обработки строк в VBScript см. В моей колонке за ноябрь 1999 г.) Когда вы закончите манипулировать строкой, вы можете сохранить изменения, записав строку в файл.

Запись в файлы
Для записи в файл используется метод Write. Его синтаксис -

.

 tsObject.Write (строка) 

где строка - текст, который вы хотите записать в файл.Например, если вы хотите записать строку, которой вы управляли в буфере памяти, в foo.txt, вы используете код

 Установить ts = fso.OpenTextFile _
("foo.txt", ForWriting)
ts.Write buf 

Этот код открывает файл foo.txt в режиме ввода-вывода ForWriting, а затем использует метод Write для записи строки в файл.

Когда вы используете метод Write, объект TextStream записывает только строку, которую вы ему передаете. Объект не добавляет символы новой строки или пробелы (т.е., пустые строки). В результате, если вы хотите писать разные строки в разных строках, вам нужно добавить символ новой строки с кодом, например

 т.с. напишите buf & vbCrLf 

Этот код объединяет возврат строки (vbCrLf) в конец строки.

Другой подход - использовать метод WriteLine. WriteLine записывает указанную строку, затем добавляет символ новой строки, так что следующая запись начинается со следующей строки.Однако, как показывает следующий синтаксис, включение строки не является обязательным:

 tsObject.WriteLine \ [(строка) \] 

Если вы используете WriteLine без строкового аргумента с таким кодом, как

 т.с.WriteLine 

вы просто получаете новую пустую строку.

Если вы хотите записать несколько последовательных пустых строк, вы можете использовать метод WriteBlankLines. Его синтаксис -

.

 цОбъект.WriteBlankLines (строки) 

где строк - количество пустых строк, которые вы хотите добавить. Например, код

 т.с.WriteBlankLines 5 

записывает в файл пять последовательных символов новой строки. Если вы хотите добавить более одной пустой строки в строку, использование WriteBlankLines более эффективно, чем использование повторных вызовов WriteLine, потому что объект TextStream должен обрабатывать меньше вызовов.

Переход между файлами и закрытие файлов
Для перехода вперед по файлу можно использовать методы Skip и SkipLine.SkipLine позволяет перейти к началу следующей строки. Чтобы пропустить только несколько символов, вместо этого используйте команду «Пропустить». Синтаксис этих методов -

.

 tsObject.SkipLine
tsObject.Skip (символы) 

где символов - количество символов, которые вы хотите пропустить. Когда вы закончите работать с файлом, вы используете метод Close, чтобы закрыть его. Синтаксис этого метода -

.

 tsObject.Close 

Использование потоков NTFS
Чтобы завершить обсуждение объекта TextStream, позвольте мне обратить ваше внимание на особую функцию, которую вы можете использовать для файлов на платформе NTFS.Под платформой NTFS, я просто имею в виду дисковый том Windows 2000 (Win2K) или Windows NT, отформатированный как NTFS (в отличие от вариантов FAT и FAT32, доступных в Windows 98). В разделе диска NTFS файлы могут иметь более одного потока данных. Содержимое файла обычно является основным безымянным потоком. Вы можете создать в файле дополнительные именованные потоки.

Чтобы добавить именованный поток данных, используйте метод CreateTextFile со специальным синтаксисом

.

 CreateTextFile _ ("имя файла: имя потока") 

где filename: streamname - это имя, которое вы даете файлу, за которым следует двоеточие и имя, которое вы даете потоку данных.(Поскольку двоеточие не является допустимым символом для длинных имен файлов, система не может непреднамеренно выдать ошибку при обработке имени файла с двоеточием внутри.) Например, для создания потока данных с именем MyExtraInfo в файле с именем foo. txt, вы используете код

 Установить fso = CreateObject _
("Scripting.FileSystemObject")
Установите ts = fso.CreateTextFile _
("foo.txt: MyExtraInfo") 

После создания именованного потока данных вы можете рассматривать его как файл внутри файла.Следовательно, вы можете использовать любые свойства или методы объекта TextStream для управления им. Например, если вы хотите создать поток данных с именем MyExtraInfo, а затем записать текст в этот поток, вы используете код

 Установить fso = CreateObject _
("Scripting.FileSystemObject")
Установите ts = fso.CreateTextFile _
("foo.txt: MyExtraInfo")
ts.Напишите «Это моя дополнительная информация»
ts.Close 

Чтобы открыть существующий поток в текстовом файле, вы используете метод OpenTextFile с именем файла: имя потока в качестве аргумента.Например, код

 Установить fso = CreateObject _
("Scripting.FileSystemObject")
Установите ts = fso.OpenTextFile _
("foo.txt: MyExtraInfo")
buf = ts.ReadAll ()
ts.Close 

открывает поток MyExtraInfo и считывает его в переменную buf. Вы также можете создать объект File с помощью метода GetFile, а затем использовать OpenAsTextStream для доступа к содержимому.

Использование именованных потоков - хороший способ скрыть особую или настраиваемую информацию в файле.Эта информация не видна через оболочку, если вы не используете специальные расширения оболочки. Однако, если вы переместите файл из раздела NTFS на том с другой файловой системой (включая диски и приводы CD-ROM), эта дополнительная информация исчезнет.

Список файлов в папке с помощью VBScript

Если вам нужно вывести список файлов из папки, вы можете использовать следующий сценарий VBScript. Он выводит свойства всех файлов в указанной папке в текстовый файл.Его можно изменить для создания выходных данных в формате XML или CSV.

Вы можете выбрать, какие атрибуты файла включать в вывод.

Вот сценарий. Скопируйте и вставьте его в текстовый файл, но дайте ему расширение файла VBS. Поместите его в то же место, что и папка, которую вы хотите просканировать.

Тусклый fso, папка, файлы, файл вывода
Dim strPath

'Создать объект FileSystemObject
Установите fso = CreateObject ("Scripting.FileSystemObject")

'Определите папку, из которой мы хотим вывести список файлов
strPath = "mySubDirectory"

Установите папку = fso.GetFolder (strPath)
Установить files = folder.Files

'Создать текстовый файл для вывода тестовых данных
Установите OutputFile = fso.CreateTextFile ("ScriptOutput.txt", True).

'Прокрутите каждый файл
Для каждого элемента в файлах

  'Выводить свойства файла в текстовый файл
  OutputFile.WriteLine (item.Name)
  OutputFile.WriteLine (элемент.Атрибуты)
  OutputFile.WriteLine (item.DateCreated)
  Выходной файл.WriteLine (item.DateLastAccessed)
  OutputFile.WriteLine (item.DateLastModified)
  OutputFile.WriteLine (элемент.Drive)
  OutputFile.WriteLine (элемент.Имя)
  OutputFile.WriteLine (элемент.ParentFolder)
  OutputFile.WriteLine (item.Path)
  OutputFile.WriteLine (item.ShortName)
  OutputFile.WriteLine (item.ShortPath)
  OutputFile.WriteLine (размер элемента)
  OutputFile.WriteLine (item.Type)
  OutputFile.WriteLine ("")
  
Следующий

'Закрыть текстовый файл
OutputFile.Close
 

Убедитесь, что вы заменили «mySubDirectory» на имя папки, из которой вы хотите получить список файлов.

Сценарий выполняет следующие шаги:

  • Dimension FileSystemObject переменные
  • Dimension другие переменные
  • Create FileSystemObject
  • Определить путь
  • Получить коллекцию файлов
  • Циклично пройти через коллекцию файлов
  • 4
  • Вывести атрибуты в текстовый файл
    86 Вы можете исключить свойство из выходного файла, удалив соответствующую строку выше или закомментировав ее, поместив одинарную кавычку в начало строки.

    Список свойств файла CSV

    В этой измененной версии выбранные свойства разделены запятыми. При загрузке в электронную таблицу это даст вам по одному файлу на строку с каждым свойством в отдельном столбце.

    Тусклый fso, папка, файлы, файл вывода
    Dim strPath
    
    'Создать объект FileSystemObject
    Установите fso = CreateObject ("Scripting.FileSystemObject")
    
    'Определите папку, из которой мы хотим вывести список файлов
    strPath = "mySubDirectory"
    
    Установить папку = fso.GetFolder (strPath)
    Установите files = folder.Файлы
    
    'Создать файл CSV для вывода тестовых данных
    Установите OutputFile = fso.CreateTextFile ("ScriptOutput.csv", True).
    
    'Прокрутите каждый файл
    Для каждого элемента в файлах
    
      'Выводить свойства файла в текстовый файл
      OutputFile.Write (item.Name)
      OutputFile.Write (",")
      OutputFile.Write (item.DateCreated)
      OutputFile.Write (",")
      OutputFile.Write (item.DateLastAccessed)
      OutputFile.Write (",")
      OutputFile.Write (item.DateLastModified)
      OutputFile.Write (",")
      OutputFile.WriteLine (размер элемента)
      
    Следующий
    
    'Закрыть текстовый файл
    Выходной файл.Закрывать
     

    Сценарий выполняет следующие шаги:

    • Dimension FileSystemObject переменные
    • Dimension другие переменные
    • Create FileSystemObject
    • Определить путь
    • Получить коллекцию файлов
    • Цикл через коллекцию файлов
    • Выводить атрибуты в текстовый файл с разделением запятая

    Свойства файловых объектов

    Ниже приводится список свойств, доступных для файловых объектов:

    Свойство атрибутов
    Это свойство позволяет нам получать или изменять различные атрибуты файла.
    Синтаксис: object.Atributes [= newattributes]

    Свойство DateCreated
    Это свойство получает дату и время создания файла.
    Синтаксис: object.DateCreated

    Свойство DateLastAccessed
    Получает дату и время последнего доступа к файлу.
    Синтаксис: object.DateLastAccessed

    Свойство DateLastModified
    Это свойство возвращает дату и время последнего изменения файла.
    Синтаксис: объект.DateLastModified

    Свойство диска
    Возвращает букву диска, на котором расположен файл.
    Синтаксис: object.Drive

    Имя Свойство
    Позволяет получить или изменить имя указанного файла.
    Синтаксис: object.Name [= newname]

    Свойство ParentFolder
    Это свойство получает объект Folder для родительского объекта, относящегося к указанному файлу.
    Синтаксис: object.ParentFolder

    Свойство пути
    Это свойство возвращает путь к файлу.
    Синтаксис: object.Path

    Свойство ShortName
    Возвращает сокращенную версию имени файла (используя соглашение 8.3).
    например Employees.