- WScript
- FileSystemObject
- Drives
- BuildPath()
- CopyFile()
- CopyFolder()
- CreateFolder()
- CreateTextFile()
- DeleteFile()
- DeleteFolder()
- DriveExists()
- FileExists()
- Folders
- FolderExists()
- GetAbsolutePathName()
- GetBaseName()
- GetDrive()
- GetDriveName()
- GetExtensionName()
- GetFile()
- GetFileName()
- GetFileVersion()
- GetFolder()
- GetParentFolderName()
- GetSpecialFolder()
- GetStandardStream()
- GetTempName()
- MoveFile()
- MoveFolder()
- OpenTextFile()
- Drive
- File
- Folder
- TextStream
- Shell
- WshNetwork
- WshShell
- Wsh[Url]Shortcut
- WshScriptExec
- ADOStreamObject
- HTA
- CMD
- uconv
- Enumerator
- Источник
Объект FileSystemObject
Объект FileSystemObject является основным объектом, обеспечивающим доступ к файловой системе компьютера; его методы используются для создания остальных объектов (Drives, Drive, Folders, Folder, Files, File и TextStream).
Для создания внутри сценария экземпляра объекта FileSystemObject можно воспользоваться методом CreateObject объекта WScript:
var FSO = WScript.CreateObject("Scripting.FileSystemObject")
Также можно использовать объект ActiveXObject
языка JScript (с помощью этого объекта можно работать с файловой системой из сценариев, находящихся внутри HTML-страниц):
var FSO = new ActiveXObject("Scripting.FileSystemObject")
Объект FileSystemObject имеет единственное свойство Drives, в котором хранится коллекция, содержащая объекты Drive для всех доступных дисков компьютера.
Методы объекта FileSystemObject
BuildPath | Добавляет к заданному пути новое имя. |
CopyFile | Копирует один или несколько файлов из одного места в другое. |
CopyFolder | Копирует каталог со всеми подкаталогами из одного места в другое. |
CreateFolder | Создает новый каталог. |
CreateTextFile | Создает новый текстовый файл и возвращает указывающий на этот файл объект TextStream |
DeleteFile | Удаляет файл. |
DeleteFolder | Удаляет каталог вместе со всем его содержимым. |
DriveExists | Возвращает true , если заданное устройство существует и false в противном случае. |
FileExists | Возвращает true , если файл существует и false в противном случае. |
FolderExists | Возвращает true , если каталог существует и false в противном случае. |
GetAbsolutePathName | Возвращает полный путь для заданного относительного пути (из текущего каталога). |
GetBaseName | Возвращает базовое имя (без расширения) для последнего компонента в пути. |
GetDrive | Возвращает объект Drive, соответствующий диску. |
GetDriveName | Возвращает строку, содержащую имя диска в заданном пути. |
GetExtensionName | Возвращает строку, содержащую расширение для последнего компонента в пути. |
GetFile | Возвращает объект File, соответствующий файлу, заданному параметром. |
GetFileName | Возвращает имя файла, заданного полным путем к нему. |
GetFileVersion | Возвращает номер версии исполняемого файла (строка). |
GetFolder | Возвращает объект Folder, соответствующий каталогу, заданному параметром<. |
GetParentFolderName | Возвращает строку, содержащую имя родительского каталога для последнего компонента в заданном пути. |
GetSpecialFolder | Возвращает объект Folder для некоторых специальных папок Windows. |
GetStandardStream | Возвращает объект TextStream, ассоциированный с потоком "StdIn", "StdOut" или "StdErr". |
GetTempName | Возвращает случайным образом сгенерированное имя файла или каталога, которое может быть использовано для операций, требующих наличия временного файла или каталога. |
MoveFile | Перемещает один или несколько файлов из одного места в другое. |
MoveFolder | Перемещает один или несколько каталогов из одного места в другое. |
OpenTextFile | Открывает заданный текстовый файл и возвращает объект TextStream для работы с этим файлом |
Drives
Синтаксис
// Свойство. Только чтение. FSO.Drives
Возвращаемое значение
Объект-коллекция Drives
.
Заметки
Коллекция Drives содержит интерфейсные объекты всех дисков, доступных на машине.
Для того, чтобы диски для съемных носителей были включены в коллекцию Drives, необязательно, чтобы в них присутствовали носители.
Коллекция Drives имеет только стандартные свойства коллекций: Count
и Item
.
Коллекция Drives не имеет методов.
Пример
var fso = WScript.CreateObject("Scripting.FileSystemObject"); var e = new Enumerator(fso.Drives); var x, n, s = ""; for (; !e.atEnd(); e.moveNext()) { x = e.item(); s = s + x.DriveLetter; s += " - "; if (x.DriveType == 3) n = x.ShareName; else if (x.IsReady) n = x.VolumeName; else n = "[Drive not ready]"; s += n + "\n"; } WScript.Echo ( s );
BuildPath()
Метод BuildPath() добавляет к заданному пути новое имя. Если необходимо, вставляется "\".
Синтаксис
FSO.BuildPath( Path, Name )
Параметры
- Path
- Строка, путь.
- Name
- Строка, имя файла.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var Path = FSO.BuildPath("C:\\Program Files", "New Folder") WScript.Echo ( Path ); Path = FSO.BuildPath("C:\\Program Files\\", "New Folder") WScript.Echo ( Path ); // Результат: // C:\Program Files\New Folder
CopyFile()
Метод CopyFile() копирует один или несколько файлов.
Синтаксис
FSO.CopyFile( Source, Destination, Overwrite )
Параметры
- Source
- Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
- Destination
- Строка, путь назначения (куда копировать).
- Overwrite
- Необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию -
true
(перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); FSO.CopyFile ("C:\\*.bat", "D:\\", false);
CopyFolder()
Метод CopyFolder() рекурсивно копирует каталог.
Синтаксис
FSO.CopyFolder( Source, Destination, Overwrite )
Параметры
- Source
- Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
- Destination
- Строка, путь назначения (куда копировать).
- Overwrite
- Необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию -
true
(перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).
Комментарии
Процесс копирования прерывается после первой возникшей ошибки.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); FSO.CopyFolder ("C:\\NewFolder\\*", "C:\\TEMP\\", true);
CreateFolder()
Метод CreateFolder() создаёт каталог с указанным именем.
Синтаксис
FSO.CreateFolder( Foldername )
Параметры
- Foldername
- Строка, путь к каталогу. Если такой каталог уже существует, произойдёт ошибка.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); FSO.CreateFolder ("C:\\New Folder");
CreateTextFile()
Метод CreateTextFile() создаёт новый текстовый файл и возвращает объект TextStream, указывающий на него.
Синтаксис
FSO.CreateTextFile( Filename, Overwrite, Unicode )
Параметры
- Filename
- Строка, путь к файлу.
- Overwrite
- Необязательный, булево (число). Перезаписывать файл, если он существует (
true
), или нет (false
). По умолчанию -false
. Если указаноfalse
и файл существует - произойдёт ошибка. - Unicode
- Необязательный, булево (число). Файл в формате Unicode (
true
), или ASCII (false
). По умолчанию -false
.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var TextStream = FSO.CreateTextFile("C:\\Test.txt");
DeleteFile()
Метод DeleteFile() удаляет указанный файл.
Синтаксис
FSO.DeleteFile( Filespec, Force )
Параметры
- Filespec
- Строка, путь к файлу. В последнем компоненте параметра можно использовать групповые символы "*" и "?".
- Force
- Необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию -
false
(не удалять).
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); FSO.DeleteFile ( "F:\\tmp\\*", true );
DeleteFolder()
Метод DeleteFolder() удаляет указанную папку.
Синтаксис
FSO.DeleteFolder( Folderspec, Force )
Параметры
- Folderspec
- Строка, путь к папке. В последнем компоненте параметра можно использовать групповые символы "*" и "?".
- Force
- Необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию -
false
(не удалять).
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); FSO.DeleteFolder ( "D:\\TEMP\\*", false );
DriveExists()
Метод DriveExists() возвращает true
, если указанный диск сущесвтвует, и false
в противном случае.
Синтаксис
FSO.DriveExists( Drivespec )
Параметры
- Drivespec
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); Disk = "A:" WScript.Echo ( "Диск " + Disk + " существует = " + FSO.DriveExists(Disk) ); Disk = "Q:" WScript.Echo ( "Диск " + Disk + " существует = " + FSO.DriveExists(Disk) );
FileExists()
Метод FileExists() возвращает true
, если указанный файл существует, и false
в противном случае.
Синтаксис
FSO.FileExists( Filespec )
Параметры
- Filespec
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); File = "C:\\Program Files\\1Cv77\\BIN\\1cv7s.exe"; WScript.Echo ( "Файл " + File + " существует = " + FSO.FileExists(File) );
Folders (коллекция)
Описание
Folders - коллекция всех объектов Folder, содержащихся внутри определенного объекта Folder
.
Коллекция Folders имеет только стандартные свойства коллекций (Count
и Item
) и метод Add, который создает новый каталог в родительском каталоге коллекции.
Синтаксис
Add(folderName)
Параметр
- folderName
- Имя создаваемого каталога. Если каталог с именем folderName уже существует в коллекции, то возникает ошибка.
Пример
function AddNewFolder(path,folderName) { var fso, f, fc, nf; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFolder(path); fc = f.SubFolders; if (folderName != "" ) nf = fc.Add(folderName); else nf = fc.Add("New Folder"); }
FolderExists()
Метод FolderExists() возвращает true
, если указанный каталог сущесвтвует, и false
в противном случае.
Синтаксис
FSO.FolderExists( Folderspec )
Параметры
- Folderspec
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); Folder = "C:\\Program Files" WScript.Echo ( "Каталог " + Folder + " существует = " + FSO.FolderExists(Folder) ); Folder = "С:\\ProgramFiles" WScript.Echo ( "Каталог " + Folder + " существует = " + FSO.FolderExists(Folder) );
GetAbsolutePathName()
Метод GetAbsolutePathName() возвращает полный путь для заданного относительного пути (из текущего каталога).
Синтаксис
FSO.GetAbsolutePathName( Pathspec )
Параметры
- Pathspec
- Строка, относительный путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var Path = FSO.GetAbsolutePathName("..") WScript.Echo ( Path ); Path = FSO.GetAbsolutePathName(".\\aaa\\bbb\\ccc.txt") WScript.Echo ( Path );
GetBaseName()
Метод GetBaseName() возвращает имя (без расширения) последнего компонента в заданном пути.
Синтаксис
FSO.GetBaseName( Path )
Параметры
- Path
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); Name = FSO.GetBaseName("Q:\\aaa\\bred\\MySuperFile.txt"); WScript.Echo ( Name ); // Результат: // MySuperFile
GetDrive()
Метод GetDrive() возвращает объект Drive по указанному имени или пути.
Синтаксис
FSO.GetDrive( Folderspec )
Параметры
- Folderspec
- Строка, имя диска или путь к корневому каталогу диска, возможно UNC-путь, т.е. параметр может быть буквой диска (c), буквой диска с двоеточием (c:), буквой диска с двоеточием и символом разделителем пути (c:\), или любым сетевым путем (\\computer2\share1).
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var Drive = FSO.GetDrive("C:"); WScript.Echo ( Drive.FileSystem ); var Drive = FSO.GetDrive("C:\\"); WScript.Echo ( Drive.FileSystem );
GetDriveName()
Метод GetDriveName() возвращает имя диска в заданном пути.
Синтаксис
FSO.GetDriveName( Path )
Параметры
- Path
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); Name = FSO.GetDriveName("X:\\aaa\\bred\\MySuperFile.txt") WScript.Echo ( Name ); // Результат: // X:
GetExtensionName()
Метод GetExtensionName() возвращает расширение последнего компонента в заданном пути.
Синтаксис
FSO.GetExtensionName( Path )
Параметры
- Path
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); Name = FSO.GetExtensionName("Q:\\aaa\\bred\\MySuperFile.txt") WScript.Echo ( Name ); // Результат: // txt
GetFile()
Метод GetFile() возвращает объект File по указанному пути.
Синтаксис
FSO.GetFile( Filespec )
Параметры
- Filespec
- Строка, путь.
Комментарии
Если файл не существует, произойдёт ошибка.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var File = FSO.GetFile("C:\\autoexec.bat"); WScript.Echo ( File.Size );
GetFileName()
Метод GetFileName() возвращает имя (с расширением) последнего компонента в заданном пути.
Синтаксис
FSO.GetFileName( Path )
Параметры
- Path
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var Name = FSO.GetFileName("Q:\\aaa\\bred\\MySuperFile.txt"); WScript.Echo ( Name ); // Результат: // MySuperFile.txt
GetFileVersion()
Метод GetFileVersion() возвращает номер версии исполняемого файла (строка).
Синтаксис
FSO.GetFileVersion( Path )
Параметры
- Path
- Строка, путь к файлу.
Комментарии
Метод возвращает информацию, которую можно просмотреть на вкладке "Версия" палитры свойств файла в проводнике.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); WScript.Echo ( FSO.GetFileVersion("c:\\Program Files\\WinRAR\\WinRAR.exe" ) );
GetFolder()
Метод GetFolder() возвращает объект Folder по указанному пути.
Синтаксис
FSO.GetFolder( Folderspec )
Параметры
- Folderspec
- Строка, путь.
Комментарии
Если каталог не существует, произойдёт ошибка.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var Folder = FSO.GetFolder("C:\\Program Files"); WScript.Echo ( Folder.ShortName ); // Результат: // PROGRA~1
GetParentFolderName()
Метод GetParentFolderName() возвращает путь к последнему компоненту в заданном пути (его каталог).
Синтаксис
FSO.GetParentFolderName( Path )
Параметры
- Path
- Строка, путь.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var Name = FSO.GetParentFolderName("Q:\\aaa\\bred\\MySuperFile.txt") WScript.Echo ( Name ); // Результат: // Q:\aaa\bred
GetSpecialFolder()
Метод GetSpecialFolder() возвращает объект Folder для некоторых специальных папок Windows.
Синтаксис
FSO.GetSpecialFolder( Folderspec )
Параметры
- Folderspec
- Число, определяет специальную папку. Возможные значения:
- 0 - Каталог Windows.
- 1 - Системный каталог библиотек и драйверов.
- 2 - Каталог временных файлов, путь к которому хранится в переменной среды "TMP".
Комментарии
Если каталог не существует, произойдёт ошибка.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); for (var s='', i=0; i <= 2; i++) s += FSO.GetSpecialFolder(i).Path + '\n'; WScript.Echo ( s );
GetStandardStream()
Метод GetStandardStream() возвращает объект TextStream, ассоциированный с потоком "StdIn", "StdOut" или "StdErr".
Синтаксис
FSO.GetStandardStream( StandardStreamType, Unicode )
Параметры
- StandardStreamType
Число, определяет поток. Возможные значения:- 0 - StdIn.
- 1 - StdOut.
- 2 - StdErr.
- Unicode
- Необязательный, булево (число).
true
- формат Unicode,false
- ASCII. По умолчанию -false
.
Комментарии
Метод применим при запуске административного скрипта в консоли с помощью CScript.exe.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var stdout = fso.GetStandardStream(1); stdout.WriteLine ("Hello, JavaScript.");
GetTempName()
Метод GetTempName() возвращает случайным образом сгенерированное имя файла, которое может быть использовано для создания временного файла.
Синтаксис
FSO.GetTempName()
Параметры
Нет
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); WScript.Echo ( FSO.GetTempName() );
MoveFile()
Метод MoveFile() перемещает один или несколько файлов.
Синтаксис
FSO.MoveFile( Source, Destination )
Параметры
- Source
- Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
- Destination
- Строка, путь назначения (куда копировать).
Комментарии
Процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый файл уже существует или является папкой в Destination, возникнет ошибка.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); FSO.MoveFile ("C:\\*.txt", "A:\\");
MoveFolder()
Метод MoveFolder() рекурсивно перемещает один или несколько каталогов.
Синтаксис
FSO.MoveFolder( Source, Destination )
Параметры
- Source
- Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
- Destination
- Строка, путь назначения (куда копировать).
Комментарии
Процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый каталог уже существует или является файлом в Destination, возникнет ошибка.
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); FSO.MoveFolder ("C:\\New Folde*", "C:\\TEMP\\");
OpenTextFile()
Метод OpenTextFile() открывает текстовый файл и возвращает объект TextStream, указывающий на него.
Синтаксис
FSO.OpenTextFile( Filename, Iomode, Create, Format )
Параметры
- Filename
- Строка, путь к файлу.
- Iomode
- Необязательный, число. Возможные значения:
- 1 - Открыть файл только для чтения.
- 2 - Открыть файл для записи. Если файл уже существовал, его содержимое теряется.
- 8 - Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.
- Create
- Необязательный, булево (число). Создавать файл, если он не существует (
true
), или нет (false
). По умолчанию -false
. - Format
- Необязательный, число. Возможные значения:
- -2 - Открыть файл в формате, используемом системой по умолчанию.
- -1 - Открыть файл в формате Unicode.
- 0 - Открыть файл в формате ASCII (по умолчанию).
Пример
var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var TextStream = FSO.OpenTextFile("C:\\Test.txt", 2, true, -1);