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

if wert in variable dann - wenn nicht - if anderer wert in variable dann

Frage Entwicklung Batch & Shell

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

22.09.2008, aktualisiert 14:50 Uhr, 4307 Aufrufe, 5 Kommentare

Hallo,


innerhalb eines Scriptes erhalte ich einen Inhalt aus Variable %%n. %%n kann diverse Buchtaben RWECMF (Netware dateisystemrechte) enthalten.

Ich möchte jetzt abhängig von diesen Buchstaben entscheiden, ob es ein Lese- oder Schreibrecht ist

da ich den kompletten Vor und Nachbau bereits in batch (cmd) gemacht habe suche ich auch eine passende BatchLösung. If instr funktioniert ja nur unter VBS - richtig ?

Die Logik müsste so aussehen ..

Wenn in %%N ein W enthalten dann set Variable Gruppentyp=Schreibrechte

Wenn in %%N ein kein W enthalten , jedoch ein R dann set Variable Gruppentyp=Leserechte
Mitglied: 60730
22.09.2008 um 11:18 Uhr
Servus,

da ich den kompletten Vor und Nachbau bereits in batch (cmd) gemacht habe
würde ich es schön finden - wenn du uns diesen Teil einfach mal in
Blöcken mitgibst

Ansonsten vesrtehe ich deine Frage so
if %n% =="R" then echo Leserechte

... oder meinst du %n% kann eine beliebige Buchstaben Kombination aus "RWECMF" usw haben?
Gruß
Bitte warten ..
Mitglied: jschneider
22.09.2008 um 11:49 Uhr
Zitat von 60730:
... oder meinst du %n% kann eine beliebige Buchstaben Kombination aus
"RWECMF" usw haben?
Gruß

Ja Genau - und sobald ein W enthalten ist soll halt ein Schreibrecht vorrausgesetzt werden, wenn W nicht enthalten ist soll geschaut werden, ob wenigstens ein R enthalten ist um in diesem Fall von einem Leserecht auszugehen

also am liebsten hätte ich ja aus VBS den "if instr", mit dem ich reinschaue und je nach enthaltenem wert weiter arbeiten kann


Den Ansatz, den ich gerade verfolge funktioniert nicht so wie ich möchte. Desweiteren habe ich das Gefühl viel zu Umständlich zu Arbeiten
01.
 for /f  %%x in ('echo %%n^|findstr "R"') do ( 
02.
  echo       -  %%n - leserechte vorhanden 
03.
  echo           
04.
  pause 
05.
  set qGruppentyp=lesen  
06.
07.
  
08.
  for /f  %%x in ('echo %%n^|findstr "W"') do ( 
09.
                            rem echo %%n|findstr "W">nul &&  
10.
  echo       -  %%n - schreibrechte vorhanden 
11.
  pause 
12.
  set qGruppentyp=schreiben  
13.
14.
 
15.
echo %qGruppentyp%
Nach dem Motto: schau erstmal ob ein R enthalten ist und definiere den Typ. Und nur wenn die gleiche Gruppe doch noch W-Rechte haben sollte definiere den Typ durch einen anderen Wert

blöd blöd

zumal ich es als if benötige
Bitte warten ..
Mitglied: jschneider
22.09.2008 um 12:11 Uhr
echo %%n|findstr "W"
if %Errorlevel%==0 (
echo Schreibrechte gefunden
) ELSE (

echo %%n|findstr "R"
if %Errorlevel%==0 (
echo Leserechte gefunden
)
)


bisher das beste was mir eingefallen ist
Bitte warten ..
Mitglied: Biber
22.09.2008 um 12:45 Uhr
Moin jschneider,

ich versuch mich mal vom CMD-Prompt aus ranzutasten...
01.
>set NWReitz="RW" 
02.
 
03.
(=12:37:45  D:\temp=) 
04.
>for %i in (R W E C M F) do @echo  "%NWReitz%"|find /i "%i">nul || echo %i is nich drin 
05.
E is nich drin 
06.
C is nich drin 
07.
M is nich drin 
08.
F is nich drin 
09.
 
10.
(=12:37:55  D:\temp=) 
11.
>for %i in (R W E C M F) do @echo  "%NWReitz%"|find /i "%i">nul && echo %i is drin 
12.
R is drin 
13.
W is drin
Diese Mimik in einer Batchdatei weitergesponnen (Annahme. in %NWReitz% sind die NetWare-Rechte):
01.
for %%i in (R W E C M F) do set "%%i_Recht=0" 
02.
REM nach dieser Schleife ist R_Recht=0; W_Recht=0; ....F_Recht=0 ... 
03.
for %%i in (R W E C M F) do ( 
04.
       echo  "%NWReitz%"|find /i "%%i">nul && Set "%%i_Recht=1" 
05.
06.
If %R_Recht% == 1 machdies 
07.
If %W_Recht% == 1 machdas 
08.
If %E_Recht% == 1 call E_RechtKrams 
09.
....
[ungetestete Montagsskizze]

Natürlich kannst Du jeweils direkt der Variablen-"Erkennung" sofort in einen Call-Block springen:
01.
... 
02.
for %%i in (R W E C M F) do ( 
03.
         echo  "%NWReitz%"|find /i "%%i">nul && Call: %%i_Verarbeitung 
04.
05.
:goto :eof 
06.
:R_Verarbeitung 
07.
....<bla> 
08.
goto :eof 
09.
 
10.
:W_Verarbeitung 
11.
....<bla> 
12.
goto :eof
Grüße
Biber
Bitte warten ..
Mitglied: jschneider
22.09.2008 um 14:50 Uhr
Zitat von Biber:
[ungetestete Montagsskizze]

ich schmeiß mich weg

der Ansatz gefällt mir !
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Variable über Wert aussuchen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
Wert in Registry suchen und in Variable speichern (2)

Frage von J.Troll zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable enthält nur den letzten Wert (4)

Frage von Phill93 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Variable einen Wert zuweisen (7)

Frage von sascha382 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...