Что касается C #, то в некоторых смыслах интерфейсы и абстрактные классы могут быть взаимозаменяемыми. Однако различия заключаются в следующем: i) интерфейсы не могут реализовать код; ii) из-за этого интерфейсы не могут переходить к стеку до подкласса; и iii) только абстрактный класс может быть унаследован в классе, тогда как несколько классов могут быть реализованы в классе.
Вы можете использовать WScript.Arguments
для доступа к аргументам, переданным вашему сценарию.
Вызов скрипта:
cscript.exe test.vbs "C:\temp\"
Внутри вашего скрипта:
Set File = FSO.OpenTextFile(WScript.Arguments(0) &"\test.txt", 2, True)
Не забудьте проверить, был ли на самом деле передан аргумент вашему скрипту. Вы можете сделать это, проверив свойство Count
:
if WScript.Arguments.Count = 0 then
WScript.Echo "Missing parameters"
end if
Если ваш скрипт завершен после закрытия файла, то нет необходимости устанавливать переменные в Nothing
. Ресурсы будут очищены автоматически при завершении процесса cscript.exe. Установка переменной в значение Nothing
обычно необходима только в том случае, если вы явно хотите освободить ресурсы во время выполнения сценария. В этом случае вы установите переменные, содержащие ссылку на COM-объект, в значение Nothing
, что приведет к освобождению COM-объекта перед завершением сценария. Это лишь краткий ответ на ваш бонусный вопрос, больше информации вы найдете в следующих вопросах:
Есть ли необходимость устанавливать объекты в Nothing внутри функций VBA
Для ответа на бонусный вопрос общий ответ не, Вы ни на "Что" не должны устанавливать переменные в коротких.VBS сценариях как Ваши, которые называют Wscript или Cscript.
причина Вы могли бы сделать, это посреди более длинного сценария должно освободить память назад к операционной системе, которую иначе содержал бы VB. В эти дни, когда 8 ГБ RAM типичны и 16 ГБ + относительно распространенный, это вряд ли произведет любое измеримое влияние, даже на огромном сценарии, который имеет несколько мегабайтов в единственной переменной. В этой точке это - своего рода пережиток со дней, где Вы, возможно, работали в 1 МБ или 2 МБ RAM.
Вы корректны, момент, который завершает Ваш.VBS сценарий, все Ваши переменные уничтожаются, и память исправлена так или иначе. Установка переменных ни к "Чему" просто ускоряет тот процесс и позволяет Вам делать это посреди сценария.
Внутри VBS вы можете получить доступ к параметрам с помощью
Wscript.Arguments(0)
Wscript.Arguments(1)
и так далее. Номер параметра:
Wscript.Arguments.Count
К каждому аргументу, переданному через командную строку, можно получить доступ с помощью: Wscript.Arguments.Item(0) Где ноль - это номер аргумента: т.е. 0, 1, 2, 3 и т.д.
Таким образом, в вашем коде может быть:
strFolder = Wscript.Arguments.Item(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile(strFolder, 2, True)
File.Write "testing"
File.Close
Set File = Nothing
Set FSO = Nothing
Set workFolder = Nothing
Используя wscript.arguments.count, вы можете отлавливать ошибки, если кто-то не введет правильное значение и т.д.