Het goede oude DOS

Plaats reactie
Gebruikersavatar
Maverick
Plus Member
Plus Member
Berichten: 159
Lid geworden op: 20 sep 2002, 14:23
Locatie: Willebroek
Bedankt: 2 keer

Hey folks?

Ik heb een probleempje met het uitvoeren van het start commando in DOS.
Eén van de variabelen heeft namelijk zowel "" als een . in de waarde zitten.

Voorbeeld variabelen:
drive_=C
Extra_="test. ga verder"
year_=2008
codenr_=54321
prcode_=Project

Bij het uitvoeren van volgende code om explorer te starten geeft dit een probleem.

start %drive_%:\%Extra_%%year_%\%codenr_%_%prcode_%

DOS probeert dan C:\"test. ga verder"\2008\54321_Project te openen.
Heb met volgend commando

for /f "useback tokens=*" %%a in ('%Extra_%') do set Extra_=%%~a

de "" al kunnen weghalen, maar dan krijg je met hetzelfde commando het fenomeen dat DOS dan probeert om C:\test. te openen.

Iemand enig idee?
The box said: 'install on Windows XP, Vista or better'. So I installed it on Linux.
Diod
Plus Member
Plus Member
Berichten: 204
Lid geworden op: 16 dec 2006, 21:52

Moet het niet hetvolgende zijn?

Extra_=test. ga verder

start "%drive_%:\%Extra_%%year_%\%codenr_%_%prcode_%"
MaRtO
Elite Poster
Elite Poster
Berichten: 1250
Lid geworden op: 26 nov 2003, 20:33
Locatie: BE

Die Extra_ mag hetzelfde blijven volgens mij.
Gebruikersavatar
Styno
Elite Poster
Elite Poster
Berichten: 1440
Lid geworden op: 06 nov 2003, 17:38
Locatie: Somewhere over the rainbow....

Moet je echt op de default shell blijven of kan je eventueel via een andere shell of met 'unix'/cygwin binaries werken?
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc
echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq'|dc
Afbeelding
Astralon
Elite Poster
Elite Poster
Berichten: 3310
Lid geworden op: 26 jul 2005, 12:17
Locatie: Lochristi
Uitgedeelde bedankjes: 196 keer
Bedankt: 125 keer

Ik denk dat je vergeten bent om een titel op te geven waardoor de interpretatie van je commando de mist in gaat.
Titel kan uiteraard ook leeg ("") zijn.

Ik heb vlug een voorbeeldje gemaakt met mijn eigen code.
Hopelijk is het duidelijk...

Code: Selecteer alles

set drive_=C
set extra_=Temp\Matrix Multiplication\MatrixMultiplication.exe
start "Mijn Titel" "%drive_%:\%Extra%"
Laatst gewijzigd door Astralon 20 aug 2008, 11:25, in totaal 1 gewijzigd.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Escape die vreemde tekens met ^ , helpt dat?

dus ^. gebruiken
Gebruikersavatar
Maverick
Plus Member
Plus Member
Berichten: 159
Lid geworden op: 20 sep 2002, 14:23
Locatie: Willebroek
Bedankt: 2 keer

Geen van de oplossingen hierboven helpt.
Vb: bij ^. wordt de directory effectief ook met ^. geschreven, dus niet echt de oplossing.
Ik zoek verder.
BTW de "" zijn niet echt het probleem, wel de . (dot) midden in de directory.

Thanks,
The box said: 'install on Windows XP, Vista or better'. So I installed it on Linux.
Astralon
Elite Poster
Elite Poster
Berichten: 3310
Lid geworden op: 26 jul 2005, 12:17
Locatie: Lochristi
Uitgedeelde bedankjes: 196 keer
Bedankt: 125 keer

Voor alle duidelijkheid... test. is de naam van een directory?
gert.jansen
Pro Member
Pro Member
Berichten: 263
Lid geworden op: 02 jun 2007, 23:29
Locatie: Oostmalle
Uitgedeelde bedankjes: 9 keer
Bedankt: 1 keer
Contacteer:

En als je de oplossing van Maverick combineert met wat je zelf al had bedacht in je openingspost?

Code: Selecteer alles

@echo off
set drive_=C
set Extra_="test. ga verder"
set year_=2008
set codenr_=54321
set prcode_=Project 

echo %drive_%:\%Extra_%%year_%\%codenr_%_%prcode_% 

for /f "useback tokens=*" %%a in ('%Extra_%') do set Extra_=%%~a 

echo %drive_%:\%Extra_%%year_%\%codenr_%_%prcode_%  

echo "%drive_%:\%Extra_%%year_%\%codenr_%_%prcode_%"

pause
geeft bij mij als resultaat:

Code: Selecteer alles

C:\"test. ga verder"2008\54321_Project
C:\test. ga verder 2008\54321_Project
"C:\test. ga verder 2008\54321_Project "
Press any key to continue . . .
Is die 3e niet ongeveer wat je moet hebben?
Gebruikersavatar
Maverick
Plus Member
Plus Member
Berichten: 159
Lid geworden op: 20 sep 2002, 14:23
Locatie: Willebroek
Bedankt: 2 keer

Sorry,
"Extra_" variable was fout, hieronder de goede.

Voorbeeld variabelen:
drive_=C
Extra_="test\X. ga verder\"
year_=2008
codenr_=54321
prcode_=Project

Ok hier ben ik ondertussen gekomen, ECHO werkt bij mij ook, geen probleem dus.
MKDIR, XCOPY werken ook, enkel het commando START flipt op die "." (dot) en geeft een boodschap "can not open C:\test\X."

Om te testen doe ik dit.
Maak op je C:\ een dir "X. test" (zonder de "")
open een command prompt
type start "c:\X. test" (ook weer zonder de "")
dan zie je de foutmelding

bij MKDIR zet je de dir die je wil aanmaken tussen quotes en dat werkt wel.
voorbeeld:
MKDIR "C:\X. test" (wel met de "" nu)




Dus alle commando's in de bat file werken ok behalve......
Laatst gewijzigd door Maverick 20 aug 2008, 17:18, in totaal 2 gewijzigd.
The box said: 'install on Windows XP, Vista or better'. So I installed it on Linux.
Astralon
Elite Poster
Elite Poster
Berichten: 3310
Lid geworden op: 26 jul 2005, 12:17
Locatie: Lochristi
Uitgedeelde bedankjes: 196 keer
Bedankt: 125 keer

En als je het resultaat van een je ECHO (dus het commando dat je wilt uitvoeren) eens in een nieuw CMD window plakt.
Werkt het dan?

Dus iets als "C:\test. ga verder 2008\54321_Project " in een CMD window plakken.
Gebruikersavatar
Maverick
Plus Member
Plus Member
Berichten: 159
Lid geworden op: 20 sep 2002, 14:23
Locatie: Willebroek
Bedankt: 2 keer

Astralon, heb een edit gedaan in vorige post :oops:
The box said: 'install on Windows XP, Vista or better'. So I installed it on Linux.
Gebruikersavatar
Maverick
Plus Member
Plus Member
Berichten: 159
Lid geworden op: 20 sep 2002, 14:23
Locatie: Willebroek
Bedankt: 2 keer

ok opgelost,

ipv "start c:\X. test" gebruik ik nu "explorer /e c:\X. test" en dit werkt.

Thanks all

Ships,
dit opent je root en niet de directory, ik zoek dus nog altijd verder
Laatst gewijzigd door Maverick 20 aug 2008, 17:27, in totaal 1 gewijzigd.
The box said: 'install on Windows XP, Vista or better'. So I installed it on Linux.
Astralon
Elite Poster
Elite Poster
Berichten: 3310
Lid geworden op: 26 jul 2005, 12:17
Locatie: Lochristi
Uitgedeelde bedankjes: 196 keer
Bedankt: 125 keer

Nu begrijp ik er niets meer van, het zal wel aan mij liggen :oops:

Code: Selecteer alles

MKDIR C:\X. test
Maakt gewoon 2 directories aan C:\X en C:\test zoals te verwachten

Code: Selecteer alles

MKDIR "C:\X. test"
Maakt de directory C:\X. test aan

Ik begrijp niet wat het commando

Code: Selecteer alles

start C:\X. test
zou moeten doen...
Gebruikersavatar
Maverick
Plus Member
Plus Member
Berichten: 159
Lid geworden op: 20 sep 2002, 14:23
Locatie: Willebroek
Bedankt: 2 keer

Nu echt opgelost,

ipv "start c:\X. test" gebruik ik nu "explorer c:\X. test" en dit werkt.

ditmaal zonder de /e

Thanks all


@Astralon,
start C:\X. test doet windows explorer open op die bepaalde directory, maar door dat . gaat dat niet.
Doe eens start C:\ in een dos venster en je zal zien.
heb nu dus "start" gewoon vervangen door "explorer"
The box said: 'install on Windows XP, Vista or better'. So I installed it on Linux.
Astralon
Elite Poster
Elite Poster
Berichten: 3310
Lid geworden op: 26 jul 2005, 12:17
Locatie: Lochristi
Uitgedeelde bedankjes: 196 keer
Bedankt: 125 keer

OK, dus zoals ik reeds aangaf was er een probleem met de titel...

Code: Selecteer alles

start "" "X. test"
BungaMan
Elite Poster
Elite Poster
Berichten: 1485
Lid geworden op: 16 nov 2005, 09:05

zit nu niet op windows maar ik dacht dat je in de command line spaties kon vervangen door %20 zoals in een url. en anders had je ook nog de korte notatie kunnen gebruiken, vb "Progam Files" wordt dan "progra~1"
Please help, looking for a way to get rich and fast
Plaats reactie

Terug naar “Development”