Войти

Показать полную графическую версию : Очиста содержимого файла


alexhd
08-04-2014, 18:53
Здравствуйте.
Нужна помощь в написании скрипта на vbs который будет очищать содержимое файла, например .txt

THEDOGG
08-04-2014, 19:12
alexhd, какого файла ?

Iska
08-04-2014, 21:44
alexhd, пробуйте:
Option Explicit

Const ForWriting = 2

Dim strFile


strFile = "E:\Песочница\0373\0001.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strFile) Then
With .OpenTextFile(strFile, ForWriting)
.Close
End With
Else
WScript.Echo "File [" & strFile & "] not found."
WScript.Quit 1
End If
End With

WScript.Quit 0

alexhd
09-04-2014, 10:32
Iska, спасибо, то что надо!

alexhd
09-04-2014, 11:31
Подскажите как быть если нужно очищать два и более файлов и как в скрипте правильно указать путь к профилю пользователя, если указать "%userprofile%\Песочница\0373\0001.txt" то так не отрабатывает?

Iska
09-04-2014, 11:52
как в скрипте правильно указать путь к профилю пользователя, »
Например:
strFile = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%\0001.txt")

Подскажите как быть если нужно очищать два и более файлов »
Пробуйте (не проверялось):
Option Explicit

Const ForWriting = 2

Dim arrFiles
Dim strFile

Dim objWshShell


arrFiles = Array("E:\Песочница\0373\0001.txt", "E:\Песочница\0373\0002.txt", "%UserProfile%\0001.txt")

Set objWshShell = WScript.CreateObject("WScript.Shell")

With WScript.CreateObject("Scripting.FileSystemObject")
For Each strFile In arrFiles
strFile = objWshShell.ExpandEnvironmentStrings(strFile)

If .FileExists(strFile) Then
With .OpenTextFile(strFile, ForWriting)
.Close
End With
Else
WScript.Echo "File [" & strFile & "] not found."
End If
Next
End With

Set objWshShell = Nothing

WScript.Quit 0

alexhd
09-04-2014, 12:39
Iska, отрабатывает так как надо. Еще осталась один нерешенный вопрос для меня-как объединить эту часть кода с другой частью которая выполняет иную задачу, нужно получить на выходе один скрипт вместо двух?

Iska
09-04-2014, 16:23
как объединить эту часть кода с другой частью которая выполняет иную задачу, нужно получить на выходе один скрипт вместо двух? »
Как объединить — зависит от кода «другой части».

alexhd
09-04-2014, 16:53
Нужно добавить в начало к скрипту во вложении

Iska
09-04-2014, 17:13
Используйте два скрипта. Не вижу смысла что-то делать, когда первой же строкой идёт «On Error Resume Next».

alexhd
09-04-2014, 17:42
Можно ли тогда использовать какой-то батник или скрипт который будет запускать эти два скрипта по очереди?

Iska
09-04-2014, 18:29
Откуда Вы его хотите запускать?

alexhd
09-04-2014, 18:48
Например, из сетевой шары.

Iska
09-04-2014, 19:07
@echo off
cscript.exe //nologo "\\Server\Share\Script1.vbs"
cscript.exe //nologo "\\Server\Share\Script2.vbs"

Рекомендую также на всякий случай разрешить использование UNC-путей в качестве текущего каталога согласно: Cmd.exe does not support UNC names as the current directory (http://support.microsoft.com/kb/156276/en-us).

alexhd
10-04-2014, 10:34
Спасибо за помощь!




© OSzone.net 2001-2012