Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Mehrere CMD Instanzen aus einer Batch aufrufen - virtuelle Laufwerke mappen

Frage Entwicklung Batch & Shell

Mitglied: Leopold.Bloom

Leopold.Bloom (Level 1) - Jetzt verbinden

20.08.2012 um 01:00 Uhr, 3906 Aufrufe, 1 Kommentar

Hallo liebe Leute,

Verzweiflung macht sich breit - ich verstehe mal wieder etwas nicht. Hinweise und Tips sind sehr erwünscht.

Die Aufgabe meines Batches: Ich habe 4 Cloud Speicher, denen ich zum Systemstart automatisch Laufwerksbuchstaben gebe und die ich so als "normale" LW im Explorer ansprechen kann. Auf jedem dieser 4 Speicher habe ich einen gecrypteten Ordner. Um die gecrypteten Ordner in Klarschrift zu sehen bzw. um etwas verschlüsselt in der Cloud ablegen zu können, muss ich für jeden dieser gecrypteten Ordner einen virtuellen Laufwerksbuchstaben mappen. Ausserdem muss sicher gestellt sein, dass zum Zeitpunkt, wenn die Crypt LW gemappt werden sollen, die Cloud Laufwerke bereits vorhanden sind. Das will ich nicht alles von Hand machen. 4 Clouds mit je einem Crypt Verzeichnis. das sind 8 Buchstaben, die da zu vergeben sind. Daher der Batch. Er funktioniert bereits - aber eine Stelle hätte ich gerne "etwas eleganter". Bzw. ich muss aus dem Batch einen weiteren Batch aufrufen. Auf der Kommandozeile funktioniert es auch ohne diesen zweiten Batch. Nur im Batch nicht. Mir ist nicht klar warum das so ist.

Ach ja - WinXP SP3.

01.
@ECHO OFF 
02.
 
03.
Rem Laufwerksbuchstaben für die Clouds 
04.
 
05.
set Cloud1=j  
06.
set Cloud2=k 
07.
set Cloud3=l 
08.
set Cloud4=m 
09.
 
10.
Rem Laufwerksbuchstaben für die Crypts 
11.
 
12.
set Crypt1=o 
13.
set Crypt2=p 
14.
set Crypt3=q 
15.
set Crypt4=r 
16.
 
17.
Rem Cloud1 bekommt den LW Buchstaben j 
18.
Rem Das verschlüsselte Verzeichnis auf j bekommt den LW Buchstaben o 
19.
Rem Cloud2 bekommt den LW Buchstaben k 
20.
Rem Das verschlüsselte Verzeichnis auf k bekommt den LW Buchstaben p usw. 
21.
 
22.
Rem encfs.exe ist das Verschlüsselungsprogramm 
23.
Rem und es erzeugt die Laufwerksbuchstaben 
24.
Rem für die verschlüsselten Laufwerke 
25.
 
26.
set Encfs_Pfad=c:\encfs.exe 
27.
 
28.
Rem die gecrypteten LW lassen sich nur mit dem PW mounten. 
29.
Rem j:\crypt_verz_cloud_1 ist das RootVerz für LW o: 
30.
Rem k:\crypt_verz_cloud_2 ist das RootVerz für LW p: usw. 
31.
 
32.
set Crypt1_Pfad=j:\crypt_verz_cloud_1 
33.
set Crypt1_PW=crypt1_pw 
34.
set Crypt2_Pfad=k:\crypt_verz_cloud_2 
35.
set Crypt2_PW=crypt2_pw 
36.
set Crypt3_Pfad=l:\crypt_verz_cloud_3 
37.
set Crypt3_PW=crypt3_pw 
38.
set Crypt4_Pfad=m:\crypt_verz_cloud_4 
39.
set Crypt4_PW=crypt4_pw 
40.
 
41.
Rem Netdrive.exe mappt die Clouds als Laufwerke und ordnet LW Buchstaben zu 
42.
 
43.
start c:\programme\NetDrive\netdrive.exe -tray 
44.
 
45.
Rem Etwas Geduld 
46.
@ping -n 15 localhost> nul 
47.
 
48.
for %%i in (%Cloud1% %Cloud2% %Cloud3% %Cloud4%) do ( 
49.
 
50.
Rem Wenn der Laufwerksbuchstabe für die Cloud vergeben worden ist 
51.
Rem den Laufwerksbuchstaben für das gecryptete Verzeichnis erzeugen 
52.
Rem das geht über die ausgelagerte Batch mount_all.cmd. 
53.
Rem nowindow.exe sorgt dafür, dass sich kein weiteres Cmd Fenster öffnet 
54.
 
55.
		  @if exist %%i:\ ( 
56.
		  if %%i == %Cloud1%  if not exist %Crypt1%:\  start nowindow.exe mount_all.cmd %Crypt1_PW% %Encfs_Pfad% %Crypt1_Pfad% %Crypt1%: 
57.
		  if %%i == %Cloud2%  if not exist %Crypt2%:\  start nowindow.exe mount_all.cmd %Crypt2_PW% %Encfs_Pfad% %Crypt2_Pfad% %Crypt2%: 
58.
		  if %%i == %Cloud3%  if not exist %Crypt3%:\  start nowindow.exe mount_all.cmd %Crypt3_PW% %Encfs_Pfad% %Crypt3_Pfad% %Crypt3%: 
59.
		  if %%i == %Cloud4%  if not exist %Crypt4%:\  start nowindow.exe mount_all.cmd %Crypt4_PW% %Encfs_Pfad% %Crypt4_Pfad% %Crypt4%: 
60.
61.
 
62.
EXIT


So funktioniert es. Pro Crypt LW ist im Hintergrund eine Instanz von CMD offen. Also 4 Instanzen von CMD.

in der mount_all.cmd steht nur dies

01.
@set Passwort=%1 
02.
@set Encfs_pfad=%2  
03.
@set Crypt_pfad=%3 
04.
@set Crypt_LW=%4  
05.
 
06.
echo %Passwort%|%Encfs_pfad%%Crypt_pfad% %Crypt_LW% -S 

Es ist praktisch nur eine Zeile und ich würde sie gerne mit in den Hauptbatch integrieren. Ich habe den ganzen Tag daran herumprobiert.
Dies hier funktioniert nur für eine Cloud. Manchmal auch für gar keine.

01.
 
02.
for %%i in (%Cloud1% %Cloud2% %Cloud3% %Cloud4%) do ( 
03.
 
04.
		  @if exist %%i:\ ( 
05.
                   
06.
		  if %%i == %Cloud1%  if not exist %Crypt1%:\  start nowindow.exe cmd.exe /k echo %Crypt1_PW%|%Encfs_Pfad% %Crypt1_Pfad% %Crypt1%: -S 
07.
		  if %%i == %Cloud2%  if not exist %Crypt2%:\  start nowindow.exe cmd.exe /k echo %Crypt2_PW%|%Encfs_Pfad% %Crypt2_Pfad% %Crypt2%: -S 
08.
		  if %%i == %Cloud3%  if not exist %Crypt3%:\  start nowindow.exe cmd.exe /k echo %Crypt3_PW%|%Encfs_Pfad% %Crypt3_Pfad% %Crypt3%: -S 
09.
		  if %%i == %Cloud4%  if not exist %Crypt4%:\  start nowindow.exe cmd.exe /k echo %Crypt4_PW%|%Encfs_Pfad% %Crypt4_Pfad% %Crypt4%: -S 
10.
		  )
Einzeln aufgerufen auf der Kommandozeile funktioniert es mit "cmd.exe /k echo %Crypt[Nr]_PW%|%Encfs_Pfad% %Crypt[Nr]_Pfad% %Crypt[Nr]%: -S".Es soll das gleiche machen, wie mount_all.cmd. Aber im Hauptbatch mappt dieser Code das erste gecryptete LW und dann bleibt der Batch stehen. Die drei anderen gecrypteten LW werden nicht mehr gemappt. Manchmal wird auch gar kein Crypt LW gemappt. Es liegt nicht an nowindow.exe. Ohne nowindow.exe habe ich das gleiche Ergebnis. Bei direktem Aufruf von 4 CMD Instanzen aus dem Batch funktioniert es nicht. Mache ich das Gleiche über die mount_all.cmd funktioniert es ohne Problem. Hat jemand dafür eine Erklärung? Oder noch besser - eine Lösung?

LG aus HH

Leopold
Mitglied: Leopold.Bloom
25.08.2012 um 14:21 Uhr
Heureka. Ich habe die Lösung gefunden.

01.
 
02.
start nowindow.exe cmd.exe "/k echo %Crypt3_PW%|%Encfs_Pfad% %Crypt3_Pfad% %Crypt3%: -S"  
03.
 
Diese eine Zeile hat mich mehr Zeit gekostet, als ich jemals damit sparen kann.

LG aus HH

Leopold
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Cmd Befehle in Powershell GUI aufrufen (5)

Frage von Markus2016 zum Thema Batch & Shell ...

Batch & Shell
CMD-Batch hilfe: Dateiname zu txt (2)

Frage von Syscore64 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...