Toon posts:

[Dos batch] Drive mappings veranderen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer dus een Batch te maken maar het probleem is dat niet idereen een drive mapping heeft naar de zelfde drive letter.
De Batch komt later in Active directory.

\\share1\sys moet dus vervangen worden met \\nwsrvr_keesing\FileshareS009

Ik heb dus zoiets in elkaar gestoken maar dit werkt dus niet

@Echo off
:BEGIN
If f: = \\share1\sys Then
net use /delete f:
net use f: \\nwsrvr_keesing\FileshareS009
Else
If G: = \\share1\sys Then
net use /delete g:
net use g: \\nwsrvr_keesing\FileshareS009
End If
End If
:END

Is er iemand die er iets meer van weet dan ik?

  • Bockelaar
  • Registratie: Juli 2001
  • Laatst online: 07-05 21:27
is het in regel 4 & 7 niet "net use f: /delete" en "net use g: /delete" ?

Remember: A CRAY is the only computer that runs an endless loop in just 4 hours...


  • Angelfire
  • Registratie: September 2000
  • Laatst online: 10:04

Angelfire

AKA AZwaanR or RZA

Waarom wil je niet dat iedereen dezelfde drive letter krijgt? Is een stuk makkelijker te beheren.

Maar om op je vraagstuk terug te komen. Probeer eens een
net use >> c:\drives.txt dan heb je een document met daarin alle netwerkkoppelingen.
Deze met een for /f (tokens=2,3 delim= ) in (c:\drives.txt) do blaat
uitlezen en opdracht geven.
Je moet hier even mee gaan puzzelen, maar op zo'n manier is het mogelijk.
Je stopt eerst alle drive mappings in een bestandje,
leest daarvan het 2 en 3 woord, een spatie is de afscheiding, dan kan je een if statement doen.

Even in de google groups kijken, is echt enorm veel over te vinden, of gewoon bij microsoft kijken.

http://www.microsoft.com/.../productdoc/en/ntcmds.asp

Hier staan alle commando's die je kan en mag gebruiken.

I play my enemies like a game of chess...


Verwijderd

volgens mij werken if icm met endifs zowieso niet in dos files (vroegah tenminste ).

ik maakte me dos batch files altijd zo
code:
1
2
3
4
5
6
if bla = bla goto bla
goto end
:bla
echo bla 
goto end
:end


maar sowieso is het handig als je vertel wat er misgaat :)

Verwijderd

@Echo off
:BEGIN
If exist f:\<dir> (
(net use f: /delete )
(net use f: \\nwsrvr_keesing\FileshareS009)
) Else (
(If exist g:\<dir> (
(net use g: /delete)
(net use g: \\nwsrvr_keesing\FileshareS009)
)
)
:END

  • Rone
  • Registratie: April 2002
  • Niet online

Rone

Moderator Tweaking
Verwijderd schreef op 13 juli 2004 @ 08:21:
ik maakte me dos batch files altijd zo:

goto end
:end
Een 'goto end' en daarna meteen de ':end' label? :+
Daar kun je 'goto end' dus gewoon weglaten.
..maar sowieso is het handig als je vertel wat er misgaat :)
Precies, we hebben er vrijwel niets aan als je alleen stelt: "maar dit werkt dus niet"
Wat werkt er niet? Wat voor foutmelding kreeg je? etc.

[ Voor 7% gewijzigd door Rone op 13-07-2004 08:27 ]

PC1: 9800X3D + RX 9070 XT
PC2: 5800X3D + RTX 3080


Verwijderd

Topicstarter
Angelfire schreef op 13 juli 2004 @ 08:19:
Waarom wil je niet dat iedereen dezelfde drive letter krijgt? Is een stuk makkelijker te beheren.

Maar om op je vraagstuk terug te komen. Probeer eens een
net use >> c:\drives.txt dan heb je een document met daarin alle netwerkkoppelingen.
Deze met een for /f (tokens=2,3 delim= ) in (c:\drives.txt) do blaat
uitlezen en opdracht geven.
Je moet hier even mee gaan puzzelen, maar op zo'n manier is het mogelijk.
Je stopt eerst alle drive mappings in een bestandje,
leest daarvan het 2 en 3 woord, een spatie is de afscheiding, dan kan je een if statement doen.

Even in de google groups kijken, is echt enorm veel over te vinden, of gewoon bij microsoft kijken.

http://www.microsoft.com/.../productdoc/en/ntcmds.asp

Hier staan alle commando's die je kan en mag gebruiken.
Het is nog van voor de tijd dat we op 2 locaties zaten dit zal allemaal nog op een drivemapping komen

for /f (tokens=2,3 delim= ) in (c:\drives.txt)
En hier snap ik niet veel van maar ik zoek verder

thx

Verwijderd

Topicstarter
Bockelaar schreef op 13 juli 2004 @ 08:16:
is het in regel 4 & 7 niet "net use f: /delete" en "net use g: /delete" ?
Is het zelfde ;)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 22:49

curry684

left part of the evil twins

Batchfiles aub in het relevante OS-forum -> Windows Operating Systems

Professionele website nodig?


Verwijderd

Heb je mijn herschreven scriptje al geprobeert?

Je hoeft alleen de <dir> in te vullen door een dir die aanwezig is op de share.
(of een bestand)

Ik neem wel aan dat je het eigenlijk over een .cmd hebt en niet een .bat

Vanaf NT gebruik ik eigenlijk alleen nog .cmd's.

Verwijderd

Topicstarter
Verwijderd schreef op 13 juli 2004 @ 09:01:
Heb je mijn herschreven scriptje al geprobeert?

Je hoeft alleen de <dir> in te vullen door een dir die aanwezig is op de share.
(of een bestand)

Ik neem wel aan dat je het eigenlijk over een .cmd hebt en niet een .bat

Vanaf NT gebruik ik eigenlijk alleen nog .cmd's.
Ben het nog aan het uitzoeken
maar ik denk dat er een probleem is als ik het gebruik
het is namelijk zo

F: is er een net use naar \\nwsrvr_keesing\sys
G: is er een net use naar \\nt-belcrownlaan\sys

En bij de helft is dit andersom

F: is er een net use naar \\nt-belcrownlaan\sys
G: is er een net use naar \\nwsrvr_keesing\sys

dus de nt-bel...... moet worden
\\nwsrvr_keesing\FileshareS009

  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Angelfire schreef op 13 juli 2004 @ 08:19:
Maar om op je vraagstuk terug te komen. Probeer eens een
net use >> c:\drives.txt dan heb je een document met daarin alle netwerkkoppelingen.
Deze met een for /f (tokens=2,3 delim= ) in (c:\drives.txt) do blaat
uitlezen en opdracht geven.
Kan ook in één keer:

for /f "tokens=2,3 delim=" in ('net use') do blaat

Let er ook op dat options tussen quote's moet staan... :)

[ Voor 10% gewijzigd door Question Mark op 13-07-2004 09:45 ]

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


Verwijderd

Topicstarter
Verwijderd schreef op 13 juli 2004 @ 09:01:
Heb je mijn herschreven scriptje al geprobeert?

Je hoeft alleen de <dir> in te vullen door een dir die aanwezig is op de share.
(of een bestand)

Ik neem wel aan dat je het eigenlijk over een .cmd hebt en niet een .bat

Vanaf NT gebruik ik eigenlijk alleen nog .cmd's.
Ik heb nu deze code geprobeerd maar het werkt niet

@Echo off
:BEGIN
If exist f:\belrem (
(net use f: /delete )
(net use f: \\nwsrvr_keesing\FileshareS009)
) Else (
(If exist g:\belrem (
(net use g: /delete)
(net use g: \\nwsrvr_keesing\FileshareS009)
)
)
:END

of ben ik verkeerd bezig?

Verwijderd

@Echo off
:BEGIN
If exist f:\belrem (
(net use f: /delete )
(net use f: \\nwsrvr_keesing\FileshareS009)
) Else (
(If exist g:\belrem (
(net use g: /delete)
(net use g: \\nwsrvr_keesing\FileshareS009)
)
)
:END

Sorry je moet wel op een unieke dir/bestand zoeken om aan te tonen welke share je benadert.
Of zijn \\nt-belcrownlaan\sys en \\nwsrvr_keesing\sys identiek?

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

Hmmm..
code:
1
if a==b

en niet
code:
1
if a=b

Anders gaat het sowieso niet werken.

Waarom gooi je F: en G: niet weg en gebruik je twee compleet nieuwe volumenummers, bv. Y: en Z:? Dan ben je ervan af.

Bloed, zweet & koffie


Verwijderd

Topicstarter
Verwijderd schreef op 13 juli 2004 @ 10:54:
@Echo off
:BEGIN
If exist f:\belrem (
(net use f: /delete )
(net use f: \\nwsrvr_keesing\FileshareS009)
) Else (
(If exist g:\belrem (
(net use g: /delete)
(net use g: \\nwsrvr_keesing\FileshareS009)
)
)
:END

Sorry je moet wel op een unieke dir/bestand zoeken om aan te tonen welke share je benadert.
Of zijn \\nt-belcrownlaan\sys en \\nwsrvr_keesing\sys identiek?
op \\nt-belcrownlaan\sys heb ik belrem aangemaakt dus ze zijn niet het zelfde

Verwijderd

Topicstarter
Vilenin schreef op 13 juli 2004 @ 11:00:
Hmmm..
code:
1
if a==b

en niet
code:
1
if a=b

Anders gaat het sowieso niet werken.

Waarom gooi je F: en G: niet weg en gebruik je twee compleet nieuwe volumenummers, bv. Y: en Z:? Dan ben je ervan af.
Ik moet terug F en G gebruiken en de eene moet blijve bestaan (\\nwsrvr_keesing\sys)

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Echo off
:BEGIN
If exist f:\ call :fshare
If exist g:\ call :gshare
goto :eof

:fshare
net use f: /d /y
net use f: \\nwsrvr_keesing\FileshareS009
goto :eof

:gshare
net use g: /d /y
net use g: \\nwsrvr_keesing\FileshareS009
goto :eof

:END

[ Voor 5% gewijzigd door Verwijderd op 13-07-2004 13:21 ]


Verwijderd

Topicstarter
Verwijderd schreef op 13 juli 2004 @ 13:17:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Echo off
:BEGIN
If exist f:\ call :fshare
If exist g:\ call :gshare
goto :eof

:fshare
net use f: /d /y
net use f: \\nwsrvr_keesing\FileshareS009
goto :eof

:gshare
net use g: /d /y
net use g: \\nwsrvr_keesing\FileshareS009
goto :eof

:END
BINGO :)

Het werkt

ik heb wel nog dit gedaan

code:
1
2
3
4
5
@Echo off
:BEGIN
If exist f:\belrem call :fshare
If exist g:\belrem call :gshare
goto :eof


belrem dus erbij gezet.
Op de mappingdrive die wegmoet heb ik een folder gemaakt belrem om zo te weten of het de juiste drive is die ik moet veranderen.

En aan iedereen bedankt om mij te helpen _/-\o_

Verwijderd

heb je nu ook nog enig idee waarom de batch werkt?

Verwijderd

Topicstarter
Verwijderd schreef op 13 juli 2004 @ 16:34:
heb je nu ook nog enig idee waarom de batch werkt?
Ja zeker weet ik dit. het is wel al jaaren geleden dat ik in dos met batfile eens iete gedaan heb maar het komt allemaal terug ;)

Als je het echt wil weten leg ik het wel uit maar dan post ik het wel prive

nogmaals thx

  • TNijpjes
  • Registratie: September 2002
  • Niet online
Vilenin schreef op 13 juli 2004 @ 11:00:
Hmmm..
code:
1
if a==b

en niet
code:
1
if a=b

Anders gaat het sowieso niet werken.

Waarom gooi je F: en G: niet weg en gebruik je twee compleet nieuwe volumenummers, bv. Y: en Z:? Dan ben je ervan af.
Het is niet slim om een mapping naar de Z: schijf te maken.
Als je ergens in het netwerk win9x gebruikt zal deze eerst de Z: naar je netlogon share maken. Als je vervolgens probeerd de Z: te mappen in je script gaat het fout. (of je moet een moeilijke constructie maken door eerst een tijdelijke maping te maken en daarin de Z: opnieuw te mappen)

Te dure camere, te veel lenzen, te weinig tijd. O, en iets dat flitst


Verwijderd

een beetje logon script begint ook altijd met:

net use * /d

en maakt vervolgens alle mappings weer aan.
Pagina: 1