[DOS] Output command in omgevingsvariabele zetten

Pagina: 1
Acties:
  • 139 views sinds 30-01-2008
  • Reageer

  • BlackB1rd
  • Registratie: Maart 2000
  • Laatst online: 05-05 15:11
Ik ben nu al een uurtje oid. aan het stoeien maar krijg het echter niet voor elkaar om een variabele neer te zetten met als waarde de output van een uitgevoerd command.

Waar ik het nu voor wil gebruiken is als volgt: dmv. een rsync win32 versie wil ik incrementele backup maken naar een rsync server. Nu moet er echter in het script de optie komen om als destination de huidige dag in te vullen.

Dankzij date.exe van een cygwin installatie kan ik ervoor zorgen dat date zich hetzelfde gedraagd onder DOS als onder *nix. Wat ik dus wil is dat "date +%A" in b.v. de omgevingsvariabele "TEMPDATE" word gezet.

Aangezien DOS bij lange na niet zo flexibel is in shell scripting als *nix, is me dit nog niet gelukt en begin ik zelfs te twijfelen of het uberhaupt wel mogelijk is op deze manier... Als er een efficientere methode is dan hoor ik dat graag, want dit schiet nu ff niet op :(

Een hele zooooi


  • Valium
  • Registratie: Oktober 1999
  • Laatst online: 04-05 20:39

Valium

- rustig maar -

export TEMPDATE=`date +%A`
(met dus van die verkeerd-om accentjes. Zit linksboven op je TB onder het "wiebeltje".

[edit]
MIJN GOD! Ik ben niet wakker vandaag :O ....het gaat om DOS dus. Mijn fout...

* Valium gaat op zoek naar de koffie. :P

[ Voor 38% gewijzigd door Valium op 27-05-2003 17:33 ]


  • BlackB1rd
  • Registratie: Maart 2000
  • Laatst online: 05-05 15:11
Dit zou zeer interessant zijn indien het om *nix ging ;) Maar de grote truuk is om deze stap uit te voeren onder DOS en dat zal dus moeten mbv. het 'set' command.

De ` tekens worden niet herkend onder DOS, dus dat gaat helaas niet werken :(

[edit]

Geef niet, hebben allemaal wel 's een slechte dag ;)

[ Voor 15% gewijzigd door BlackB1rd op 27-05-2003 17:34 ]

Een hele zooooi


  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 06-05 22:46

Vae Victis

Dark Lord of the Sith

even gezocht en dit gevonden:
code:
1
2
3
4
5
6
7
ECHO E100"SET VAR=">$                                        
FOR %%_ IN (RCX 8 NFILE1.BAT W Q) DO ECHO %%_>>$                  
DEBUG <$ >NUL                                                     
DEL $                                                             
{jouwcommando} >>FILE1.BAT                                           
CALL FILE1.BAT                                                    
DEL FILE1.BAT

waarbij {jouwcommando} dan 'date +%A' is.

Het zou nog kleiner kunnen dmv:
code:
1
2
3
4
ECHO EXIT|%COMSPEC%/KPROMPT E100'SET VAR='$_RCX$_8$_NFILE1.BAT$_W$_Q|DEBUG>NUL
date +%A >> FILE1.BAT                                           
CALL FILE1.BAT                                                    
DEL FILE1.BAT

Maar dat moet je maar even proberen.

Vertel even of het gelukt is, heb geen dos bij de hand om het zelf te doen. :)

var moet je nog even vervangen door tempdate

[ Voor 8% gewijzigd door Vae Victis op 27-05-2003 17:57 ]


  • BlackB1rd
  • Registratie: Maart 2000
  • Laatst online: 05-05 15:11
Bedankt! Het werkt :) Beide overigens, de 'lange' versie en de ingekorte.

[edit]
Overigens moet er een dubbel percentage teken gebruikt worden in de commandline, dus date +%%A, anders zet ie +A neer ipv +%A :)

[ Voor 57% gewijzigd door BlackB1rd op 27-05-2003 18:24 ]

Een hele zooooi


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05-2025
Tsss, en dan zeggen ze dat linux ingewikkeld is ...

  • JeroenE
  • Registratie: Januari 2001
  • Niet online
BlackB1rd schreef op 27 May 2003 @ 17:22:
Aangezien DOS bij lange na niet zo flexibel is in shell scripting als *nix, is me dit nog niet gelukt en begin ik zelfs te twijfelen of het uberhaupt wel mogelijk is op deze manier... Als er een efficientere methode is dan hoor ik dat graag, want dit schiet nu ff niet op :(
Het probleem is al opgelost, maar als je nog verder aan de slag wil gaan met scripts onder dos kan je overwegen om eens naar 4Dos te kijken. Dat is wel shareware, maar ik heb er vroeger altijd veel plezier van gehad.

Eventueel kan je ook eens naar REXX kijken. Ik heb er wel eens wat in gedaan (in mijn OS/2 dagen) en dat werkte ook best goed. Er is tegenwoordig zelfs een gratis versie voor DOS.
Pagina: 1