Documentation Question to %@PSHELL

I've played with the PSHELL-command and after a little try and error I think I can use with the
alternating double- and single quotes. My "reference command" for Powershell ist
PS:>"List Volume"|DISKPART
In PSHELL:
PSHELL /S "'List Volume'|DISKPART"

But this will not work with %@PSHELL
Echo %@PSHELL["'List Volume'|DISKPART"]
I get an error message from Powershell, Parameter could not be handled.

How is the handling with %@PSHELL ?

The manual is pretty monosyllabic there:
@PSHELL[expression] : Executes the specified PowerShell expression.

How about some example here ?
 
Here is how I see what is happening;
Code:
c:\users\jlc\utils>pshell /s "$x = 'List Volume' | DISKPART"

c:\users\jlc\utils>pshell /s "$x"

Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: OPTIPLEX9010

DISKPART>
  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     D                       DVD-ROM         0 B  No Media
  Volume 1         SYSTEM       NTFS   Partition    300 MB  Healthy    System
  Volume 2     C   WINDOWS      NTFS   Partition    903 GB  Healthy    Boot
  Volume 3         RECOVERY     NTFS   Partition     27 GB  Healthy    Hidden
  Volume 4     G   New Volume   NTFS   Partition    465 GB  Healthy
  Volume 5     E                NTFS   Removable     29 GB  Healthy
  Volume 6     X                NTFS   Partition    232 GB  Healthy

DISKPART>

Look at the following;
Code:
c:\users\jlc\utils>echo %@execstr[pshell /s "$x"]
ECHO is OFF

Why did it return ECHO is OFF? Well, the first line of the returned results is blank.

I have found that @PSHELL is best at returning a single item, not alot of items all at once.

For me, if I want a single line from the results, determine which line I want using Powershell, save that line into a Powershell variable, and then use @PSHELL to retrieve that Powershell variable.

Joe
 
I have found that @PSHELL is best at returning a single item, not alot of items all at once.

For me, if I want a single line from the results, determine which line I want using Powershell, save that line into a Powershell variable, and then use @PSHELL to retrieve that Powershell variable.

Joe
Thank You, Joe, You made it clear for me. Before I had not realized, that %@PSHELL is a function call which can return only a single value, a number or a string, for example:
Code:
Set arSize=%@PSHELL[$x.Length]
IFF %@ISDIGIT[%arsize] THEN
  IFF %arsize GT 0 THEN
    SetArray arPS[%arsize]
    IFF %@EXECARRAY[arPS,PSHELL /S "$x"] EQ 0 THEN
      On Error Rem
      Do z=0 TO %@DEC[%_EXECARRAY]
       Echo %z, %@TRIM[%arPS[%z]]
    ENDIFF
  ENDIFF
ENDIFF
 
Last edited:

samintz

Scott Mintz
May 20, 2008
1,503
16
Solon, OH, USA
I'm not sure why you want to use @PSHELL at all for this command. DiskPart is an external executable.
This works to return the volume list using just TCC commands.
Code:
echo List Volume | diskpart
 
Works not here, Scott,
If I send this command, it has the same effect as in CMD: DISKPART prints out
it's help screen fore many times.
The reason is, that I've switch to Unicode output with TCC some time ago, but
DISKPART cannot handle commands in Unicdoe
To interact with DISKPART so I must always use a sequence like this
Code:
OPTION //UNICODEOUTPUT=No
  Echo List Volume | DISKPART
OPTION //UNICODEOUTPUT=YES
then it will work :smile:
Thanks for this hint.
 
Last edited:
Similar threads
Thread starter Title Forum Replies Date
C forum Posting Question... Support 3
C question re: Move Support 3
S How to? Upgrade Question: What supporting documentation is required at time of purchase? Support 2
Fross Tab Question Support 6
Fross Quick Function Question Support 17
Dick Johnson Question about the Touch command Support 0
rps Documentation "Copy+Paste+run" question Support 2
vefatica SFTP question Support 17
vefatica Question about IPWorks Support 0
C How to? SHORTCUT question..... Support 6
vefatica TPIPE, crash and question Support 1
C Question / Suggestion Support 1
MickeyF Another TPIPE question Support 6
vefatica Another @EVERYTHING question Support 4
mikea How to? %@everything[] question Support 10
A License Question for Single User Support 5
Jay Sage Help Correction (and Related Question) Support 0
S Elapsed time in TCC prompt question Support 0
H command line parsing question Support 5
C Forum question Support 2
B Newbie here, I have a question. Support 4
J Dumb Question ... Support 4
Timothy Byrd Updating from TC 9 to TC 17 - TCTOOLBAR question Support 2
M A possibly stupid question about the "del" command... Support 7
M A just out of curiosity question re @DiskTotal Support 4
Fross Status Bar Time Question Support 1
A Stupid, obvious question - launch a BAT with TC Support 10
C How to? GLOBAL question Support 5
vefatica OT: VisualStudio question Support 1
vefatica Wildcard question Support 4
Dan Glynhampton v15 installer question Support 2
C Move question with Encrypted file... Support 6
M Maybe Maybe I'm being stupid (again), but a simple question... Support 4
C Message Board question Support 1
James Miller How to? filename completion question Support 1
C coding question Support 3
M A just-out-of-curiosity question because it's ... Support 6
Frank question to FOLDERMONITOR Support 14
C Dumb titleprompt question Support 4
M Upgrade Question Support 2
S option /u question Support 19
M How to? A probably stupid question re "@Files" and Include Lists... Support 2
M Just an out-of-curiosity question re. "Do ... /P ..." Support 31
M How to? An admittedly somewhat silly question regarding elevation... Support 2
M Just an out-of-curiosity question the List command vs. the @Lines function... Support 13
M PDir format question... Support 3
M A question about file compression that is just out of curiosity... Support 2
M How to? A very simple question re. the current line number in a batch file... Support 2
M A purely out-of-curiosity question about @DriveType and @DriveTypeEx Support 2
vefatica SET question Support 16

Similar threads