markue
Goto Top

Dateinamen auslesen und in Code einbauen

Hallo an alle, ich bin neu hier und habe eine für mich knifflige Sache.

Ich möchte per .cmd Datei ein Netzwerklaufwerk verbinden. Das funktioniert soweit:

@echo off

echo @echo off > %APPDATA%/NetLW.bat

for /f "Tokens=1,2" %%i in ('net use * \\XXserverXX\XXfreigabeXX /persistent:yes ^| find /i "Laufwerk"') do @set LASTLW=%%j >> %APPDATA%/NetLW.bat

echo del H:\NetLW.cmd /q >> %APPDATA%/NetLW.bat

echo exit >> %APPDATA%/NetLW.bat

start %APPDATA%/NetLW.bat


Zur Erklärung:
Die Datei soll bei einem User auf seinem Home-Laufwerk H: liegen und von diesem User ausgeführt werden.
Ich bereite die Datei vor, lege sie auf sein H: und er doppelklickt und fertig.
Das Programm macht bisher auch was es soll, nur hätte ich jetzt gerne, das ich anstatt die Datei zu öffnen und den Code zu ändern, sie für jeden User umbenenne in:
server-1 home user.cmd
Das Programm soll diesen Dateinamen auslesen, dabei soll "server-1" "home" und "user" an folgende stelle im Code eingefügt werden:
for /f "Tokens=1,2" %%i in ('net use * \\server-1\home\user /persistent:yes ^| find /i "Laufwerk"') do @set LASTLW=%%j >> %APPDATA%/NetLW.bat
und die Leerzeichen sollen das "\" bilden.

kann mir da jemand was fertiges basteln? ich habe keine ahnung wie ich das bewerkstelligen soll.

Vielen Dank

Gruß
Marco

Content-ID: 339985

Url: https://administrator.de/forum/dateinamen-auslesen-und-in-code-einbauen-339985.html

Ausgedruckt am: 23.12.2024 um 09:12 Uhr

133417
133417 07.06.2017 aktualisiert um 17:57:43 Uhr
Goto Top
Kein Problem:

Beispiel:
@echo off
set "name=%~n0"  
set "mypath=\\%name: =\%"  
echo %mypath%
Gruß
markue
markue 07.06.2017 um 18:03:34 Uhr
Goto Top
wäre es dann so korrekt?

@echo off

echo @echo off > %APPDATA%/NetLW.bat

set "name=%~n0"
set "mypath=\\%name: =\%" 

for /f "Tokens=1,2" %%i in ('net use * \\%mypath% /persistent:yes ^| find /i "Laufwerk"') do @set LASTLW=%%j >> %APPDATA%/NetLW.bat

echo del H:\NetLW.cmd /q >> %APPDATA%/NetLW.bat

echo exit >> %APPDATA%/NetLW.bat

start %APPDATA%/NetLW.bat

irgendwo muss noch ein fehler sein, funktioniert noch nicht ganz. du siehst ich bin kein profi darin ;)
133417
133417 07.06.2017 aktualisiert um 18:05:46 Uhr
Goto Top
\\%mypath%
Die Slashes sind doppelt, die sind doch schon in der Variablen :-P
hier
set "mypath=\\%name: =\%"
markue
markue 07.06.2017 um 18:05:31 Uhr
Goto Top
Habe meinen Fehler gefunden. Tausend Dank, es funktioniert.
markue
markue 07.06.2017 um 18:05:50 Uhr
Goto Top
war mir auch grade aufgefallen. DANKE
markue
markue 14.06.2017 um 09:52:21 Uhr
Goto Top
Hi. mir ist das noch etwas aufgefallen.
zb: \\server-1\freigabe abcd efg
wenn ich im freigabenamen leerzeichen habe, ersetzt er mir diese dann in "\", wie könnte ich das verhindern das er ab freigabe bis efg kein "\" sonder die " " behält?

Danke schon mal
133417
133417 14.06.2017 aktualisiert um 09:57:46 Uhr
Goto Top
Mit String-Manipulation...
http://www.dostips.com/DtTipsStringManipulation.php
Wie du siehst war deine Wahl des Leerzeichens als Delimiter eine dämliche !:-P
markue
markue 14.06.2017 um 10:12:07 Uhr
Goto Top
tja, das hätte ich vorher wissen müssen :D
das ist wahrscheinlich auch zu kompliziert es in den code einzubauen oder?
ich hab com coden wenig ahnung, sorry.
133417
133417 14.06.2017 um 10:16:22 Uhr
Goto Top
Der Mensch ist lernfähig, wenn er denn will.
markue
markue 14.06.2017 um 10:26:19 Uhr
Goto Top
ja ist er :D

vielen dank, ich arbeite grade an einer lösung. aber ich hab was. danke