How to emulate this set or how to assign the result of running system "command" to a variable
- From: benbart@xxxxxxxxxxxx
- Date: Mon, 14 Aug 2006 01:07:26 +1200
Hi all,
I currently have a MS-DOS batch file that am trying to convert to a Perl script.
I have something like this in the .BAT file where variables are "set" based on
some parsing of a variable passed as a command line argument whenever the .BAT
file is executed by the application.
The command line variable is parsed/cut-down-into pieces of source_drive,
source_root, source_file, source_extn and source_path as the contents of the
..BAT file shows below:
========================================================================
rem creates a ftp command file on the root directory of the drive.
set ftp_action=%~dp0%~n1.ftp
rem these aren't used here for debuging purposes
set source_drive=%~dp0
set source_root=%~dp1
set source_file=%~n1
set source_extn=%~x1
set source_path=%~p1
rem get the file path
set destination_path=%~p1
========================================================================
Can someone tell me how can I achieve what the .BAT file is currently trying to
do in a Perl script? I tried doing system "set source_drive=%~dp0"; or
$source_drive=system "set source_drive=%~dp0";to try and assign the output of
the set command to a variable but that does not seem to work? I do not get the
result that am expecting which is the value of %~dp0, instead I presume am
getting more like the return code of running the system "set
source_drive=%~dp0".
Can someone please advise on what am doing wrong and what must I be doing
instead?
I may have to do the same thing for converting UNIX Ksh script to Perl script.
And checking the Ksh script, there is a lot of UNIX commands executed from
within the Ksh script that assigns that output of UNIX commands to variable,
for example, server=`hostname`, I cannot work out how I should be doing this on
Perl, I tried $server=system "hostname" and that does not work as $server when I
try to print it gives 0 (zero) which I think is more like the return code for
running system "hostname" and not the result that am after which is the
hostname of the server.
Thanks in advance.
.
- Follow-Ups:
- Prev by Date: Re: mp3 and wav
- Next by Date: extracting NAME and DESCRIPTION sections from pod text file
- Previous by thread: passing a list to an argument
- Next by thread: Re: How to emulate this set or how to assign the result of running system "command" to a variable
- Index(es):
Relevant Pages
|