Pagina 1 van 1
Het goede oude DOS
Geplaatst: 20 aug 2008, 01:07
door Maverick
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?
Geplaatst: 20 aug 2008, 01:13
door Diod
Moet het niet hetvolgende zijn?
Extra_=test. ga verder
start "%drive_%:\%Extra_%%year_%\%codenr_%_%prcode_%"
Geplaatst: 20 aug 2008, 01:40
door MaRtO
Die Extra_ mag hetzelfde blijven volgens mij.
Geplaatst: 20 aug 2008, 06:53
door Styno
Moet je echt op de default shell blijven of kan je eventueel via een andere shell of met 'unix'/cygwin binaries werken?
Geplaatst: 20 aug 2008, 08:51
door Astralon
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%"
Geplaatst: 20 aug 2008, 11:20
door meon
Escape die vreemde tekens met ^ , helpt dat?
dus ^. gebruiken
Geplaatst: 20 aug 2008, 14:35
door Maverick
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,
Geplaatst: 20 aug 2008, 14:40
door Astralon
Voor alle duidelijkheid... test. is de naam van een directory?
Geplaatst: 20 aug 2008, 15:21
door gert.jansen
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?
Geplaatst: 20 aug 2008, 17:06
door Maverick
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......
Geplaatst: 20 aug 2008, 17:13
door Astralon
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.
Geplaatst: 20 aug 2008, 17:16
door Maverick
Astralon, heb een edit gedaan in vorige post :oops:
Geplaatst: 20 aug 2008, 17:24
door Maverick
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
Geplaatst: 20 aug 2008, 17:26
door Astralon
Nu begrijp ik er niets meer van, het zal wel aan mij liggen
Maakt gewoon 2 directories aan C:\X en C:\test zoals te verwachten
Maakt de directory C:\X. test aan
Ik begrijp niet wat het commando
zou moeten doen...
Geplaatst: 20 aug 2008, 17:35
door Maverick
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"
Geplaatst: 20 aug 2008, 17:41
door Astralon
OK, dus zoals ik reeds aangaf was er een probleem met de titel...
Geplaatst: 21 aug 2008, 02:09
door BungaMan
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"