shadowbrokers-exploits/windows/Resources/Dsz/Scripts/Include/_File.dsi
2017-04-14 11:45:07 +02:00

130 lines
4.4 KiB
Text

#-------------------------------------------------------------------------------
# _FileExists
# Determines if a file exists, or if any files match a mask
# Params:
# file - the file or mask to look for
#-------------------------------------------------------------------------------
Sub _FileExists(IN STRING $file)
{
return _FileExists($file, "");
} /* end _FileExists (no path) */
#-------------------------------------------------------------------------------
# _FileExists
# Determines if a file exists, or if any files match a mask
# Params:
# file - the file or mask to look for (can contain a path)
# path - where to look (can be "")
#-------------------------------------------------------------------------------
Sub _FileExists(IN STRING $file, IN STRING $path)
{
if (StrLen($path) == 0) {
return __FileExistsCmd( 'dir "$file"' );
} else {
return __FileExistsCmd( 'dir "$path/$file"' );
}
} /* end _FileExists (path) */
#-------------------------------------------------------------------------------
# _FileExistsLocal
# Determines if a file exists, or if any files match a mask
# Params:
# file - the file or mask to look for (can contain a path)
# path - where to look (can be "")
#-------------------------------------------------------------------------------
Sub _FileExistsLocal(IN STRING $file)
{
return _FileExistsLocal( $file, "" );
} /* end _FileExistsLocal (path) */
#-------------------------------------------------------------------------------
# _FileExistsLocal
# Determines if a file exists, or if any files match a mask
# Params:
# file - the file or mask to look for (can contain a path)
# path - where to look (can be "")
#-------------------------------------------------------------------------------
Sub _FileExistsLocal(IN STRING $file, IN STRING $path)
{
if (StrLen($path) == 0) {
return __FileExistsCmd( 'local dir "$file"' );
} else {
return __FileExistsCmd( 'local dir -path "$path/" -mask "$file"' );
}
} /* end _FileExistsLocal (path) */
#-------------------------------------------------------------------------------
# _FileExistsCmd
# NOTE: You should not, generally, call this outside of the _File.dsi file
# Executes a dir command and determines if there is a file returned.
# Params:
# cmd - the dir command to execute
#-------------------------------------------------------------------------------
sub __FileExistsCmd( IN string $cmd )
{
@echo off;
@record on;
bool $ok = `$cmd`;
@record off;
if( !$ok )
{
return false;
}
return (GetCmdDataSize("DirItem::FileItem") > 0);
} /* end _FileExistsCmd (path) */
#-------------------------------------------------------------------------------
# _GetFiles
# Returns the files matching a given path and mask
# Params:
# mask - The file mask
# path - Where to look
# files - The matching files
#-------------------------------------------------------------------------------
Sub _GetFiles(IN STRING $path, IN STRING $mask, OUT STRING $files)
{
return __GetFilesCmd( 'dir -mask "$mask" -path "$path/"', $files );
} /* end _GetFiles */
#-------------------------------------------------------------------------------
# _GetFilesLocal
# Returns the local files matching a given path and mask
# Params:
# mask - The file mask
# path - Where to look
# files - The matching files
#-------------------------------------------------------------------------------
Sub _GetFilesLocal(IN STRING $path, IN STRING $mask, OUT STRING $files)
{
if( StrLen($path) == 0 ) {
return __GetFilesCmd( 'local dir "$mask"', $files );
} else {
return __GetFilesCmd( 'local dir -path "$path/" -mask "$mask"', $files );
}
} /* end _GetFiles */
#-------------------------------------------------------------------------------
# _FileExistsCmd
# NOTE: You should not, generally, call this outside of the _File.dsi file
# Executes a dir command and determines if there is a file returned.
# Params:
# cmd - the dir command to execute
# files - the matching files
#-------------------------------------------------------------------------------
sub __GetFilesCmd( IN string $cmd, OUT string $files )
{
@echo off;
@record on;
bool $ret = `$cmd`;
@record off;
if( !$ret ) {
return false;
}
return GetCmdData("DirItem::FileItem::name", $files);
}