- 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);