Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Temporäres Netzlaufwerk über pushd mehrfach benutzbar?

Mitglied: Knumskull

Knumskull (Level 1) - Jetzt verbinden

09.02.2010 um 14:33 Uhr, 5842 Aufrufe, 7 Kommentare

Möglichkeit zum mehrfachen benutzen eines temporären Netzlaufwerkes welches durch pushd erzeugt wurde.

Hallo,

ich habe ein Startskript für ein Programm, welches im Netzwerk liegt.
Zum starten wird in das Verzeichnis mittels 'pushd' navigiert.
Dabei wird ein Netzlaufwerk erzeugt.

Alles schön und gut, jedoch wird das Programm jetzt häufiger gestartet, was irgendwann zur Folge hat, dass das Alphabet voll ist und keine Netzlaufwerke mehr erzeugt werden können.

Wie kann ich jetzt erreichen, dass 'pushd' so intelligent ist, dass wenn ein Netzlaufwerk zu dem Pfad schon vorhanden ist, er es nicht nochmal neu erzeugt.

Meine erste Idee war, dass ich mittels 'net use' schaue, ob schon eine Verbindung und Laufwerk zu dem Net-Share exisitiert.

01.
:CHECK_APPL_DRIVE
02.
net use | find "\\cae-samba\appl" > %TEMP%\indi_tmp.tmp
03.
if errorlevel 1 exit /b 1
04.
for /F "tokens=1,2 delims=: " %%i in (%TEMP%\indi_tmp.tmp) do (
05.
	if not "%%i" == "" (
06.
		echo %%i: > %TEMP%\indi_tmp_2.tmp
07.
		for /F "tokens=1 " %%j in (%TEMP%\indi_tmp_2.tmp) do (
08.
			set CAE_HOME=%%j
09.
		)
10.
	)
11.
)
12.
del /F %TEMP%\indi_tmp_2.tmp
13.
del /F %TEMP%\indi_tmp.tmp
14.

15.
goto :eof
funktioniert soweit, jedoch wenn ich die 'Master-Applikation' beende, ist auch das Netzlaufwerk weg.
Hat jemand eine Idee?

Gruß,
Steffen
Mitglied: 60730
09.02.2010 um 14:47 Uhr
Servus,

was ich nicht so ganz verstehe ist doch...
jedoch wenn ich die 'Master-Applikation' beende, ist auch das Netzlaufwerk weg.

denn das verhalten findet man in deinen zeilen nicht
Und wenn ich schon dabei bin, warum wird denn ein temp. Laufwerksmapping gemacht, wenn das laufwerk auf nach dem beenden der Masterapp vorhanden sein soll?

Lass dich doch dazu mal etwas genauer aus.

gruß
Bitte warten ..
Mitglied: Knumskull
09.02.2010 um 14:54 Uhr
unter 'Master-Applikation' meinte ich die zu erst gestartete Apllikation.

Was ich halt nicht möchte, das ich ein Netzlaufwerk fest verbinde, da ich nie sichergehen kann, ob das entsprechende Laufwerk noch frei ist.
Bisher hatte ich keine solche Probleme, jetzt wollen die Benutzer aber eben das Programm mehrfach öffnen. Was an die besagt Alphabets-grenze stößt.

Der aufruf der app funktioniert wie folgt (in kurzform):
01.
pushd \\cae-samba\appl\indi
02.
call indi.exe
03.
popd

Vielleicht kurz zusammengefasst.
- es wird immer die gleiche Applikation gestartet
- pro Start wird ein Netzlaufwerk verbunden

gruß
steffen
Bitte warten ..
Mitglied: 60730
09.02.2010 um 15:02 Uhr
?

gib doch mal pushd /? und Popd /? in einer Dosbox ein....

"in kurzform"
du mappst ein UNC Pfad
callst eine Anwendung
wechselst in dann erst in das verzeichnis und beendest das mapping (wenn die Befehlserweiterungen aktiviert sind)?
Ich glaube 2010 ist so ein Jahr wo ich noch viel lernen kann- Hoffentlich kommt bald Herr Alzheimer und erlöst mich
Was ich halt nicht möchte, das ich ein Netzlaufwerk fest verbinde, da ich nie sichergehen kann, ob das entsprechende Laufwerk noch frei ist.
oh jee - der Admin, der keinen Überblick über seine Laufwerksmappings hat ist immer klar im Nachteil - und der Seitenhieb mit dem Zaunpfahl von wegen, wenn alle Anwendungen/Laufwerke per pushd gemappt werden - kein Wunder...

01.
for %i in (z y x w v u) do if not exist %i:\ net use %i \\cae-samba\appl\indi && goto weiter
02.
:weiter
Bitte warten ..
Mitglied: Knumskull
09.02.2010 um 15:13 Uhr
oh jee - der Admin, der keinen Überblick über seine Laufwerksmappings hat ist immer klar im Nachteil

hier arbeiten ca. 40k leute ... es gibt unzählige Abteilungen, die irgendwelche Programme bereitstellen und dann sind da noch die Anwender. Man kann sich hier nicht sicher sein.
Und auf was verlassen kann man sich hier schon gleich gar nicht.

Aber dein Ansatz ist ausbaubar ... ab und zu denke ich schon ein bissl kompliziert.
Bitte warten ..
Mitglied: 60730
09.02.2010 um 16:43 Uhr
Aber dein Ansatz ist ausbaubar face-smile ... ab und zu denke ich schon ein bissl kompliziert.

yupp und ich setze manchmal zu wenig an - oder mappe zuviele Laufwerke

01.
for %%i in (u v w x y z) do if not exist %%i:\ Set "newdrive=%%i:\"
02.
net use %newdrive% \\cae-samba\appl\indi
Bitte warten ..
Mitglied: Knumskull
11.02.2010 um 16:37 Uhr
Bin dummerweise krank geworden und kann das Skript grad nicht vollenden.

Aber deinen Ansatz habe ich übernommen.
Also was ich jetzt mache, ist folgendes:
- testen ob ein netzlaufwerk besteht. Wenn ja, Laufwerksbuchstaben extrahieren und für den Pfad verwenden.
- wenn laufwer nicht besteht, anlegen und Laufwerksbuchstaben als Pfad verwenden.
- Programm starten
- nach beenden des Programmes testen, ob noch prozesse des Programmes offen sind. falls nicht, wird auch die Netzwerkverbindung wieder gelöst.

Ich will halt am Ende immer alles wieder aufräumen ... hinterlasse ungern spuren.
Bitte warten ..
Mitglied: Knumskull
19.02.2010 um 19:42 Uhr
So, jetzt gebe ich einfach mal die entsprechenden Funktionen an.
Also es läuft jetzt. Gemacht habe ich das ganze nach der Anleitung wie im vorherigen Post geschrieben.

Nachfolgend das ganze Skript, was zum Starten des Programmes benutzt wird.

01.
setlocal enableextensions enabledelayedexpansion
02.

03.
rem +----------------------------------------------
04.
rem + CAE-Environment
05.
rem +----------------------------------------------
06.
set CAE_HOME=\\cae-samba\appl
07.
call :CHECK_APPL_DRIVE
08.
if errorlevel 1 call :CREATE_NETDRIVE
09.

10.
rem +----------------------------------------------
11.
rem + Parameteruebergabe
12.
rem +----------------------------------------------
13.
set VERSION=%1
14.
set STATE=%2
15.
shift /1
16.
shift /1
17.

18.
rem +----------------------------------------------
19.
rem + Variablen deklarieren
20.
rem +----------------------------------------------
21.
set PROGRAMM=indiform
22.

23.

24.
rem +----------------------------------------------
25.
rem + Environment fuer %PROGRAMM% setzten
26.
rem +----------------------------------------------
27.
rem copy setting-files into application data
28.
set INDI_APPDATA_LOCAL=%APPDATA%\IndiForm
29.
set INDI_APPDATA_REMOTE=!CAE_HOME!\%PROGRAMM%\_common\appdata_default
30.
set INDI_APPDATA_REMOTE_PROCESS=%INDI_APPDATA_REMOTE%\Settings\Process
31.
set INDI_APPDATA_REMOTE_STEP=%INDI_APPDATA_REMOTE%\Settings\Step
32.

33.

34.
rem +----------------------------------------------
35.
rem + Copy default Settings to User-Workstation
36.
rem +----------------------------------------------
37.
if not exist "%INDI_APPDATA_LOCAL%" (
38.
	echo / Initial-Settings werden kopiert ...
39.
	mkdir "%INDI_APPDATA_LOCAL%" >NUL
40.
	xcopy %INDI_APPDATA_REMOTE% "%INDI_APPDATA_LOCAL%" /E /Y >NUL
41.
) else (
42.
	echo / Settings werden kopiert ...
43.
	xcopy %INDI_APPDATA_REMOTE_PROCESS% "%INDI_APPDATA_LOCAL%\Settings\Process\" /S /E /Y >NUL
44.
	xcopy %INDI_APPDATA_REMOTE_STEP% "%INDI_APPDATA_LOCAL%\Settings\Step\" /S /E /Y >NUL
45.
	echo / Materialverzeichnis in Configfiles anpassen
46.
	@call :REMOVE_INDEED_MATLIB_DIR
47.
)
48.

49.
:MAIN
50.
rem + Architektur bestimmen
51.
echo /---------------------------------------------
52.
echo / Architektur wird bestimmt ...
53.
call :SET_ARCH
54.
rem + Programm starten
55.
echo / %PROGRAMM% %VERSION% wird gestartet ...
56.
echo /---------------------------------------------
57.
call :RUN
58.

59.
goto :eof
60.

61.

62.
rem +----------------------------------------------
63.
rem + Subroutinen
64.
rem +----------------------------------------------
65.

66.
rem +----------------------------------------------
67.
rem + Aufruf des Programmes
68.
rem +----------------------------------------------
69.
:RUN
70.
call :VER_SWITCH
71.
pushd !PROG_PATH!
72.
sleep 2
73.
call %PROG_EXEC% %*
74.
if errorlevel 1 call :Error "Fehler beim Starten von %PROG_EXEC%" 1>NUL
75.
rem popd
76.
call :FINAL_CHECK
77.
goto :eof
78.

79.

80.
rem +----------------------------------------------
81.
rem + Switch fuer unterschiedliche Versionen
82.
rem +----------------------------------------------
83.
:VER_SWITCH
84.
if /i "%VERSION%"=="default" set VERSION=0.4.0000
85.

86.
if "%VERSION%"=="0.2.4702" (
87.
	set PROG_PATH=!CAE_HOME!\%PROGRAMM%\%STATE%\%VERSION%_%ARCH%\IndiForm
88.
	set PROG_EXEC=indiform.exe
89.
	goto :eof
90.
)
91.
if "%VERSION%"=="0.2.4897" (
92.
	set PROG_PATH=!CAE_HOME!\%PROGRAMM%\%STATE%\%VERSION%_%ARCH%\IndiForm
93.
	set PROG_EXEC=!CAE_HOME!\%PROGRAMM%\%VERSION%_%ARCH%\IndiForm\indiform.exe
94.
	goto :eof
95.
)
96.
if "%VERSION%"=="0.2.4931" (
97.
	set PROG_PATH=!CAE_HOME!\%PROGRAMM%\%STATE%\%VERSION%_%ARCH%\IndiForm
98.
	set PROG_EXEC=indiform.exe
99.
	goto :eof
100.
)
101.
if "%VERSION%"=="0.2.5501" (
102.
	set PROG_PATH=!CAE_HOME!\%PROGRAMM%\%STATE%\%VERSION%_%ARCH%\IndiForm
103.
	set PROG_EXEC=indiform.exe
104.
	goto :eof
105.
)
106.
if "%VERSION%"=="0.3.0000" (
107.
	set PROG_PATH=!CAE_HOME!\%PROGRAMM%\%STATE%\%VERSION%_%ARCH%
108.
	set PROG_EXEC=IndiForm.exe
109.
	goto :eof
110.
)
111.
if "%VERSION%"=="0.4.0000" (
112.
	set PROG_PATH=!CAE_HOME!\%PROGRAMM%\%STATE%\%VERSION%_%ARCH%
113.
	set PROG_EXEC=IndiForm.exe
114.
	goto :eof
115.
)
116.
goto :eof
117.

118.
rem +----------------------------------------------
119.
rem + Subroutine entfernen der Config-Zeile fuer
120.
rem + die MatLib in ProgramSettings.conf
121.
rem +----------------------------------------------
122.
:REMOVE_INDEED_MATLIB_DIR
123.
set SETTINGS_FILE_ORIG=%APPDATA%\IndiForm\Settings\ProgramSettings.conf
124.
set SETTINGS_FILE_COPY=%TEMP%\ProgramSettings.conf.orig
125.
set SETTINGS_FILE_TEMP=%TEMP%\ProgramSettings.conf.tmp
126.

127.
copy /Y "%SETTINGS_FILE_ORIG%" %SETTINGS_FILE_COPY% >NUL
128.
copy /Y NUL "%SETTINGS_FILE_TEMP%" > NUL
129.

130.
for /F "tokens=*" %%i in (%SETTINGS_FILE_COPY%) do (
131.
    echo %%i | find /i "INDEED_Executables" >NUL
132.
    if errorlevel 1 (
133.
	echo %%i | find /i "INDEED_Material_Library" >NUL
134.
	if errorlevel 1 (
135.
	  echo %%i >> "%SETTINGS_FILE_TEMP%"
136.
       )
137.
    )
138.
)
139.

140.
move /Y "%SETTINGS_FILE_ORIG%" "%SETTINGS_FILE_ORIG%.old" >NUL
141.
move /Y "%SETTINGS_FILE_TEMP%" "%SETTINGS_FILE_ORIG%" >NUL
142.
del /F "%SETTINGS_FILE_COPY%" >NUL
143.

144.
goto :eof
145.

146.
rem +----------------------------------------------
147.
rem + Subroutine zum herausfinden der Architektur
148.
rem +----------------------------------------------
149.
:SET_ARCH
150.
  rem # Prozessorarchitektur bestimmen
151.
  if "%PROCESSOR_ARCHITECTURE%"=="x86" (
152.
    set ARCH=win32
153.
	goto :eof
154.
  ) 
155.
  if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
156.
    set ARCH=win64
157.
	goto :eof
158.
  )
159.
  call :Error "Architektur wird nicht unterstuetzt!"
160.
  )
161.
goto :eof
162.

163.

164.
:CREATE_NETDRIVE
165.
for %%i in (z y x w v u t s r) do (
166.
	if not exist %%i:\ net use %%i: !CAE_HOME! /PERSISTENT:NO >NUL
167.
	if not errorlevel 1 exit /b 0
168.
)
169.
call :CHECK_APPL_DRIVE
170.
goto :eof
171.

172.

173.
rem +----------------------------------------------
174.
rem + CHECK_APPL_DRIVE
175.
rem +----------------------------------------------
176.
:CHECK_APPL_DRIVE
177.

178.
net use | find "cae-samba\appl" > %TEMP%\indi_tmp.tmp
179.
if errorlevel 1 exit /b 1
180.
for /F "tokens=1,2 delims=: " %%i in (%TEMP%\indi_tmp.tmp) do (
181.
	if not "%%i" == "" (
182.
		echo %%i: > %TEMP%\indi_tmp_2.tmp
183.
		for /F "tokens=1 " %%j in (%TEMP%\indi_tmp_2.tmp) do (
184.
			set CAE_HOME=%%j
185.
		)
186.
	)
187.
)
188.
del /F %TEMP%\indi_tmp_2.tmp >NUL
189.
del /F %TEMP%\indi_tmp.tmp >NUL
190.

191.
goto :eof
192.

193.
rem +----------------------------------------------
194.
rem + FINAL_CHECK
195.
rem +----------------------------------------------
196.
:FINAL_CHECK
197.
rem check if indiform running
198.
tasklist /FI "IMAGENAME eq IndiForm.exe" 2>NUL | find /I "indiform" >NUL
199.
if errorlevel 1 net use !CAE_HOME! /delete /yes
200.

201.
goto :eof
202.

203.

204.

205.
rem +----------------------------------------------
206.
rem + Error-Sektion
207.
rem +----------------------------------------------
208.
:Error
209.
echo /--------------------------------------------/
210.
echo / Fehler beim Aufruf von %PROGRAMM% %VERSION%
211.
echo /
212.
echo / Fehler:
213.
echo / %1
214.
echo /
215.
echo / Bitte den CAE-Support kontaktieren
216.
echo.
217.
pause && exit 1
218.
goto :eof
219.

220.
endlocal
221.
Sollten Fragen aufkommen, einfach fragen
LG Knums
Bitte warten ..
Ähnliche Inhalte
Windows Server
Drucker mehrfach vorhanden
gelöst Frage von raba34Windows Server9 Kommentare

Hallo ihr alle, ich füge Drucker mit "Erstellen" und dann (für den Standarddrucker) mit "Aktualisieren" hinzu. Wenn ich in ...

Windows 10

Vorinstallierter Win10 Key für Neuinstallation benutzbar?

gelöst Frage von ITCrowdSupporterWindows 1019 Kommentare

Mehrere HP Notebooks wurden uns verkauft auf denen ab Werk Windows 10 Professional war. Wir führten den Downgrade durch. ...

Outlook & Mail

Outlook Erinnerung mehrfach

Frage von Caro90Outlook & Mail

Hallo zusammen, wir haben nun auf Office 365 umgestellt. Die alten E-Mails und Kalendereinträge wurden per PST Datei in ...

Microsoft Office

Berechnung von Zellen (mehrfach)

gelöst Frage von Stefan007Microsoft Office6 Kommentare

Hallo, ich habe ein Problem mit einer Exceltabelle. Beispiel: Zelle A = Gesamtpreis (wird vorgegeben) Zelle B = Löhne ...

Neue Wissensbeiträge
Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 21 StundenBackup

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 2 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 steht in Englisch bereit mit Unterstützung für Windows 10 1903 (May Update)

Information von VGem-e vor 2 TagenSicherheits-Tools1 Kommentar

Moin Kollegen, Dann kommt wohl demnächst auch die deutschsprachige/europäische Version zur Auslieferung. Gruß VGem-e

Batch & Shell
PowerShell Konferenz - Videos online
Information von NetzwerkDude vor 3 TagenBatch & Shell

Abend, die Tage werden Videos der Talks von der diesjährigen EU Powershell Konferenz hochgeladen, sind einige Interessante dabei: MFG ...

Heiß diskutierte Inhalte
Google Android
Anbieter für Diensthandys
Frage von Pat.batGoogle Android24 Kommentare

Hallo zusammen, ich bin seit einiger Zeit zuständig für die Diensthandys bei uns in der Behörde. Eine Management Software ...

Windows Server
Windows Server 2016 einrichten
Frage von borjiaWindows Server20 Kommentare

Ich würde gerne einen Server einrichten, erstmal nur mit DNS und AD. Habe mich die letzten Wochen durch diverse ...

Exchange Server
Vorgehen um von Tobit auf Exchange zu wechseln
Frage von Martin1987Exchange Server17 Kommentare

Guten Abend Ich habe den Auftrag erhalten, unser Mail von David zu Outlook zu wechseln. Wie muss ich da ...

Microsoft Office
Office 365 eMail via Website verschicken
Frage von BiBeSoMicrosoft Office16 Kommentare

Hallo, kann man im Office 365 eMails anlegen welche zum versenden (smtp) für die Website funktionieren ? Muss man ...