0.0.15 • Published 5 years ago

windows-tools v0.0.15

Weekly downloads
38
License
-
Repository
github
Last release
5 years ago

Node Utilities for Windows

Right now it's just a few wrappers around some builtin console commands

Command line tools

Some wrappers for the below APIs to be used on the command line.

cwddrive                          alias a random available drive letter to current working directory
cwddrive L                        alias L to CWD if not taken, or toggles it off if it currently is L
cwddrive L C:/some/folder         alias L to C:/some/folder if available

APIs

driveAlias('x', folder)                  // alias a folder to `X:\`
driveAlias('x')                          // remove aliased `X:\` folderdrive
driveAlias()                             // list all aliased drives

associations('.js'. 'jscript')           // add or change extension to type map
associations('.js')                      // retrieve type
associations()                           // list all extension -> types

fileTypes('jscript'. process.execPath)   // add or change program that handles a filetype
                                         // (example sets node as javascript's handler)
fileTypes('jscript')                     // retrieve handler for the type
fileTypes()                              // list all type -> handlers


getFontNames()                           // list all the fonts in the registry by type


findWindowsSDK() //-->                   // simply utility for detecting installed Windows
  { path: winSDKfolder,                  // SDKs (header files). Returns null if not found.
    versions: [8, 9, 10] }


registry(key, options)                   // returns an object containing the keys and values

v = registry('HKLM\Software\Microsoft')  // wrapped in objects allowing further fluent commands
v.someValue.remove()                     // delete value
v.add('newValue', 'myValue')             // add new value
v.add('newKey')                          // a key is like a folder
v.subKey                                 // getter which goes down one level deeper

x = registry('HKCU\Some\Random\Place')
x.add('newName', v.someValue)            // clone a value

z = v.aValue                             // manipulate wrapped values even after deleting them
z.remove()
v.add(z.name, z)  						 //oops undo

v.remove()                               // delete a key and all its contents recursively
v.remove('name')                         // just delete a child (key or value)

r = registry('\\hostname\HKLM\Software') // accessing a remote registry is also possible
										 // for authentication exec the command:
										 // "net use \\hostname <password> /user:<username>"
										 // before calling registry. E.g. with execSync()
										 

options = { search    : 'query',         // all options are optional
            recursive : false,
            case      : false,
            exact     : false,
            in        : 'keys' || 'values',
            type      : 'REG_SZ'     || 'REG_MULTI_SZ'  || 'REG_DWORD' ||
                        'REG_BINARY' || 'REG_EXPAND_SZ' || 'REG_QWORD' ||
                        'REG_NONE' }
						
v = registry('HKLM\Software\Microsoft',  // example with option recursive set to true
			 {recursive: true})


// The raw commands are provided as well but are annoying to use directly

registry.query
registry.add
registry.delete
registry.copy
registry.save
registry.restore
registry.load
registry.unload
registry.compare
registry.export
registry.import
registry.flags


execSync('cmd' ...)                     // executes the command synchronously and returns the result,
                                        // flattening all params down to spaced delineation

Command(command, name, formatter)       // create a wrapped execSync calling function that executes
                                        // the command when called. Name and formatter are optional,
                                        // with the default formatter splits the result into an array of lines




function parseCSV(str){
  return str.trim().split(/\r?\n/).map(function(str){
    return JSON.parse('['+str+']');
  });
  return str;
}

var nodes = Command('tasklist /fo csv /fi "imagename eq node.exe"', 'nodes', parseCSV);

nodes();

//  [ [ 'Image Name', 'PID', 'Session Name', 'Session#', 'Mem Usage' ],
//    [ 'node.exe', '6524', 'Console', '3', '13,060 K' ] ]
0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago