Monday, 28 November 2011

PowerShell functions, scripts and aliases

Monday 28/11/2011 – 8:00 PM    


 

While I have been using PowerShell for years now, I have only used it as a literal replacement for the command prompt without benefiting from the additional functionality that PowerShell brings. However, in the past year or so, I have been come to see the light and have been using PowerShell for doing things that are either difficult or impossible to do in the command prompt.


 

Here's a list of functions, scripts and aliases that I use on frequent or semi-frequent basis. I am very interested in knowing if they can benefit someone else. I also welcome suggestions on improving and expanding them.


 

S#

Item

Type

Commands

Description

Examples

1

mf

Function

function mf($path)

{

ni –type file $path

}

Make a file

mf d:\a.txt

2

uptime

Function

function uptime()

{

[string]::Format( "{0:0} Hours", [System.Environment]::TickCount/3600000)

}

Get number of hours since machine was last restarted

uptime

3

fs

Function

function fs()

{

    $disks = Get-WmiObject -ComputerName "." -Class Win32_LogicalDisk

    

    foreach ($disk in $disks)

    {

        if ($disk.DriveType -eq 3)

        {

            [string]::Format("Drive Letter: {0:N0}", $disk.DeviceID)

            [string]::Format("Volume Name: {0:N0}", $disk.VolumeName)

            [string]::Format("Total Size: {0:N0} MB", $disk.Size/(1024*1024))

            [string]::Format("Free Space: {0:N0} MB", $disk.FreeSpace/(1024*1024))

            echo ""

        }

    }

}

Display the Drive Letter, Volume Name, Total Size and Free Space of all hard drive partitions

fs

Thursday, 24 November 2011

Working with Mercurial and CodePlex

Thursday 24/11/2011 – 3:49 PM

There is an MSDN article on using TortoiseHg with CodePlex but it doesn't say anything about working with Hg via command line.

Saturday, 12 November 2011

Saving Custom Aliases in Notepad++ using NppExec

NPPExec has a rather convulated way of doing this. Here's what you need to do:
  1. Start by creating a text file for the commands. I named mine 'NppStartScript.txt' and saved it in the 'scripts' folder. Here's what the folder structure should look like:$(NPP_DIRECTORY)\scripts\NppStartScript.txt where $(NPP_DIRECTORY) represents your Notepad++ application folder.
  2. Locate the 'NppExec.ini' file. It should be in the '$(NPP_DIRECTORY)\plugins\config' folder. Open the file, add the following configuration setting at the bottom of the file (separated from the rest of the settings with a line break) and save the file:
    [Options]
    ScriptNppStart=$(NPP_DIRECTORY)\scripts\NppStartScript.txt
  3. Create the 'NppStartScript.txt', type your command(s) and save the file. In your case it would be:npe_cmdalias alias = Full command
  4. "Full command" should be a npp_exec directive to a file which will contain the commands that you want to execute repeatedly. Here's what my run python command looks like: npe_cmdalias rpy = npp_exec "$(NPP_DIRECTORY)\scripts\rpy.txt"
  5. The "rpy.txt" contains the command to invoke the python interpreter on the file that is open in the current Notepad++ tab. Here's what I have written: D:\Portable Apps\Python\python.exe "$(FULL_CURRENT_PATH)"
  6. Restart Notepad++, open the NPPExec console and type your alias. It should run the command that you specified