Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4486
  • Last Modified:

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

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
sunhux
Asked:
sunhux
1 Solution
 
sunhuxAuthor Commented:
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
 
Shift-3Commented:
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

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Tackle projects and never again get stuck behind a technical roadblock.
Join Now