Solved

MSDOS script needed : diskpart/s in one script & output to 'hstname'.txt

Posted on 2008-10-27
2
4,426 Views
Last Modified: 2012-06-27
Hi

I would like a .bat or .cmd script that do :
a) date/t >> hostname.txt
b) sc queryex >> hostname.txt
c) echo ==========  >> hostname.txt
d) diskpart/s  scriptname >> hostname.txt


where hostname is the server's hostname as obtained by the
command "hostname".  So if my server's hostname  is Atlanta,
then the output file is  Atlanta.txt

Also, "diskpart/s scriptname"  requires a separate file scriptname
& this separate file scriptname contains two lines :
LIST VOLUME
LIST DISK
SELECT DISK 0  
LIST PARTITION
SELECT DISK x  (other any other disks that are present)
LIST PARTITION
... repeat till all disks present have been selected one by one & partition listed ...

diskpart/s scriptname currently gives following output (as there's only 1 disk in my
current server but other servers may have more disks) :

Microsoft DiskPart version 5.1.3565
Copyright (C) 1999-2003 Microsoft Corporation.
On computer: CORE2
  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     D                       DVD-ROM         0 B
  Volume 1     E   Mobile Part  CDFS   CD-ROM      7168 KB
  Volume 2     C                NTFS   Partition     70 GB  Healthy    System

  Disk ###  Status      Size     Free     Dyn  Gpt
  --------  ----------  -------  -------  ---  ---
  Disk 0    Online        73 GB      0 B

Disk 0 is now the selected disk.

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    OEM                 47 MB    32 KB
  Partition 2    Primary             70 GB    47 MB
  Partition 3    Unknown           3075 MB    70 GB


Would like to incorporate the above 2 lines of codes into the parent
script so that there's only one file to copy to each server instead of
two files (one parent script & the scriptname file)
0
Comment
Question by:sunhux
2 Comments
 

Author Comment

by:sunhux
ID: 22813235
If it's not possible to do it in one single script file (one .cmd or one .bat),
multiple files solution is acceptable too.

Just some corrections (indicated by *)  to my earlier typo to one paragraph above :

Also, "diskpart/s scriptname"  requires a separate file scriptname
& this separate file scriptname contains two lines :
LIST VOLUME
LIST DISK
SELECT DISK 0  
LIST PARTITION
SELECT DISK x  (* any other disks that are present)
LIST PARTITION
... repeat till all disks present have been selected &  partition listed*  ...
0
 
LVL 38

Accepted Solution

by:
Shift-3 earned 500 total points
ID: 22813449
Paste the script below into a text file with a .cmd extension.  Running it will create diskpart scripts on the fly and then delete them when done.  Output will be echoed to a text file named with the current computername.


@echo off
setlocal
 
set script1=%temp%\dpscript1.txt
set script2=%temp%\dpscript2.txt
set log=%computername%.txt
 
echo LIST DISK>"%script1%"
echo LIST VOLUME>"%script2%"
echo LIST DISK>>"%script2%"
 
for /F "tokens=2 skip=8" %%G in ('diskpart /s "%script1%"') do (
 echo SELECT DISK %%G>>"%script2%"
 echo LIST PARTITION>>"%script2%"
)
 
date /t>"%log%"
sc queryex>>"%log%"
echo ==========>>"%log%"
diskpart /s "%script2%">>"%log%"
 
del "%script1%"
del "%script2%"

Open in new window

0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

TOMORROW TOMORROW.BAT is inspired by a question I get asked over and over again; that is, "How can I use batch file commands to obtain tomorrow's date?" The crux of this batch file revolves around the XCOPY command - a technique I discovered w…
How to remove superseded packages in windows w60 or w61 installation media (.wim) or online system to prevent unnecessary space. w60 means Windows Vista or Windows Server 2008. w61 means Windows 7 or Windows Server 2008 R2. There are various …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

828 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