Search code examples
powershellcopy-item

Passing the current File Path through to Powershell "SendTo" Script


I'm trying to create a script that will let me copy an item from one location to a specified location in a PowerShell script. Before it's mentioned, I know that I can put a shortcut in the Send To directory to perform this action, but I would like to add additional features (that's for a different time). I do apologize if there is another post relating to this, I've been looking for a day and a half to find one.

What I would like to know is if there is a way I can pass the current-item-that-I-am-right-clicking's file path to PowerShell to be used with the Copy-Item function. So if there is an item on the desktop, I can use this PowerShell script to Copy-Item C:\Users\USERNAME\Desktop\File.ext using the path as a variable (I believe that would be the appropriate term) from the "Send To" Selection in the context menu.


Solution

  • You don't have to do anything special to get the Send To context menu to send the file path to the target - it happens automatically.

    Try the following:

    Create a new script, let's call it C:\Copy-SendTo.ps1

    param($SourceFile)
    
    Copy-Item $SourceFile -Destination C:\your\specific\location\
    

    Now, create a shortcut in $env:APPDATA\Microsoft\Windows\SendTo with the name "CopyTo" and the following target:

    %windir%\System32\WindowsPowerShell\v1.0\powershell.exe C:\Copy-SendTo.ps1 -SourceFile
    

    Now right-click a file on your desktop, select Send To > CopyTo.

    Voila, your file has been copied