Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

How to execute a perl script from any directory in WIN7

Posted on 2011-09-05
15
Medium Priority
?
360 Views
Last Modified: 2012-05-12
Hello,

I am running WIN 7 Pro 64bit. My goal is to be able to execute a perl (.pl) from any directory I may be in.

For example, all my scripts are in c:\scripts

If I am using cmd shell and I am in c:\customers\foo I want to be able to hit the tab key while I type in a few characters of the perl script.

But it not working like that. I did set my PATH environment that included c:\scripts;:.:; along with other standard windows directories, but it wont find it.

What am I doing wrong here?

Thanks  
0
Comment
Question by:richsark
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 7
15 Comments
 
LVL 23

Expert Comment

by:yo_bee
ID: 36486271
Is your UAC (User Account Control).
Are we dealing with a single machine or multiple?
0
 
LVL 1

Author Comment

by:richsark
ID: 36486275
I have UAC off, single machine
0
 
LVL 21

Expert Comment

by:Papertrip
ID: 36486278
You must add ".pl" to the PATHEXT environment variable.
0
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 
LVL 1

Author Comment

by:richsark
ID: 36486284
HI,

FYI: This is my full PATH line:


C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\ActiveState Komodo Edit 6\;C:\Perl\site\bin\;C:\Perl\bin\;c:\Perl\bin\ppm\;c:\scripts;c:\unix;c:\bind;c:\Bind\BIND9.6.2-P2\;c:\Perl\lib\ppm\;c:\Perl\lib;c:\Perl\Bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0\DLLShared\;C:\Program Files (x86)\Roxio\OEM\AudioCore\;C:\Program Files\VMware\VMware OVF Tool\;C:\Program Files\VanDyke Software\Clients\;C:\:.:;:.:;C:\Program Files (x86)\QuickTime\QTSyste;c:\regina;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\

Open in new window

0
 
LVL 1

Author Comment

by:richsark
ID: 36486293
Also, If I hand type the name of the perl script it runs fine in a directory. My goal is to be able to hit the TAB key in a directory with a few names of the perl script.

Thanks
0
 
LVL 1

Author Comment

by:richsark
ID: 36486294
Hi Papertrip, I did that still no TAB key of the perl script with any name combo.
0
 
LVL 21

Expert Comment

by:Papertrip
ID: 36486296
On the command line, type the following, there are examples for exactly what you are trying to do.

help assoc
help ftype

Open in new window

0
 
LVL 21

Expert Comment

by:Papertrip
ID: 36486300
Hi Papertrip, I did that still no TAB key of the perl script with any name combo.

Apologies I left out some key info, updated in my last post.
0
 
LVL 1

Author Comment

by:richsark
ID: 36486314
Hi Papertrip,

I still dont get it. I added the below to PATHEXT
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.pl;%PATHEXT%

still no TAB key.
0
 
LVL 21

Expert Comment

by:Papertrip
ID: 36486370
Disregard my first comment, I had company over and was quite distracted.

Adding .pl to PATHEXT envvar will allow you to execute a command without requiring the extension -- ie: myscript vs myscript.pl

If you run 'help ftype' you will see examples of exactly what you need to do.

C:\Users\blah>help ftype
Displays or modifies file types used in file extension associations

FTYPE [fileType[=[openCommandString]]]

  fileType  Specifies the file type to examine or change
  openCommandString Specifies the open command to use when launching files
                    of this type.

Type FTYPE without parameters to display the current file types that
have open command strings defined.  FTYPE is invoked with just a file
type, it displays the current open command string for that file type.
Specify nothing for the open command string and the FTYPE command will
delete the open command string for the file type.  Within an open
command string %0 or %1 are substituted with the file name being
launched through the assocation.  %* gets all the parameters and %2
gets the 1st parameter, %3 the second, etc.  %~n gets all the remaining
parameters starting with the nth parameter, where n may be between 2 and 9,
inclusive.  For example:

    ASSOC .pl=PerlScript
    FTYPE PerlScript=perl.exe %1 %*

would allow you to invoke a Perl script as follows:

    script.pl 1 2 3

If you want to eliminate the need to type the extensions, then do the
following:

    set PATHEXT=.pl;%PATHEXT%

and the script could be invoked as follows:

    script 1 2 3

Open in new window


I'm not sure if that will enable you to tab complete 'myscript' or 'myscript.pl', but if you can run the command from any directory after the change, that is a step in the right direction.

I believe the way command line tab-completion works in Windows is that it will auto-complete file and directory names relevant to your current working directory, but does not work exactly like a Unix PATH envvar by allowing a command to be ran from any directory using just the executable name.  I could be totally wrong on this part, but pretty sure about the rest ;)

0
 
LVL 1

Author Comment

by:richsark
ID: 36486402
Ok. Yea, maybe it's a windows limitation. I can tab complete in my wd, but not something located else where like a different directory.

Perhaps someone can confirm this. If it ain't suppose to work then i can stop scratching my head.

0
 
LVL 21

Expert Comment

by:Papertrip
ID: 36486408
Well you can scratch your head about that part, but what about being able to execute a script located in c:\scripts from a different directory, you are trying to accomplish that as well right?
0
 
LVL 1

Author Comment

by:richsark
ID: 36486438
H, I can run the script from any directory as long as I know the whole spelling. I was looking for a tab complete way.
0
 
LVL 21

Expert Comment

by:Papertrip
ID: 36486468
H, I can run the script from any directory as long as I know the whole spelling. I was looking for a tab complete way.
:-/

The title of your request and first sentence are, respectively,
How to execute a perl script from any directory in WIN7
I am running WIN 7 Pro 64bit. My goal is to be able to execute a perl (.pl) from any directory I may be in.
Are you saying you were already able to execute a script located in c:\scripts before I gave advice?
If not, then if what I suggested works, I have resolved what appears to have been the original issue.

If you are now, after my advice, able to execute a script found in c:\scripts from any directory, then this question has been answered.  It is unfortunate that tab-completion doesn't appear to work as you would wish, but I think you may have distinct questions here.
0
 
LVL 21

Accepted Solution

by:
Papertrip earned 2000 total points
ID: 36486474
To be clear, I don't mean having to type the full path for a script located in c:\scripts, but that from any directory you can run say 'c:\scripts\myscript.pl' by using just 'myscript.pl' (or 'myscript' if PATHEXT has .pl in it).
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows 10 Creator Update has just been released and I have it working very well on my laptop. Read below for issues, fixes and ideas.
This article provides a convenient collection of links to Microsoft provided Security Patches for operating systems that have reached their End of Life support cycle. Included operating systems covered by this article are Windows XP,  Windows Server…
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question