Создайте текстовый файл в% temp% и запишите в него содержимое, используя vbs - PullRequest
0 голосов
/ 15 октября 2018

По сути, я хочу создать новый файл и записать его в каталог на ПК, на который указывает переменная %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", оно работает нормально.

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

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

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

В 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 голосов
/ 15 октября 2018

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

...