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

Rückgabewert einer Variablen zuweisen (ohne Umweg einer Tempdatei)

Frage Entwicklung Batch & Shell

Mitglied: BigWim

BigWim (Level 2) - Jetzt verbinden

09.09.2010 um 09:33 Uhr, 9440 Aufrufe, 4 Kommentare

Hallo zusammen,

ein Bespiel (auf das wesentliche gekürzt):

Die For-Schleife ermittelt mir die ersten drei Ebenen der Verzeichnisstruktur.
Für jede Ebene wird per xcacls die Berechtigungen in eine Datei geschrieben.

01.
@echo off & Setlocal 
02.
 
03.
Set LogFile=%~n0.log 
04.
if exist %LogFile% del %LogFile% 
05.
 
06.
:QueryDir 
07.
for /f "tokens=1-4 delims=\" %%D in ('dir u:\daten\*.* /s /ad /b) do call :ScanDir "%%D\%%E\%%F\%%G" 
08.
goto :eof 
09.
 
10.
:ScanDir 
11.
xcacls %Pfadname% >>%logfile%


Mit
01.
type %logfile% | find /i /c "%1"
kann ich jetzt ermitteln, wie oft eine bestimmte Gruppe benutzt wird. Das Ergebnis ist eine Zahl.

Gibt es jetzt ein Konstrukt, dass mir die Rückgabe von type direkt einer Variabelen zuweist?
Also sinngemäß:
01.
Set Anzahl <= type %logfile% | find /i /c "%1"
Nach meinen Studien der Anleitungen und das Verfolgen der vielen Fragen, fürchte ich ja nicht. Aber es läßt mir halt keine Ruhe ....


Danke im voraus
Markus
Mitglied: miniversum
09.09.2010 um 11:12 Uhr
Das geht auch mit einer For Schleife:
01.
for /f "delims=" %%i in ('type %logfile% | find /i /c "%1"') do set Anzahl=%%i
Bitte warten ..
Mitglied: BigWim
09.09.2010 um 11:47 Uhr
Auf so etwas habe ich gehofft!

Aber leider bin ich zu doof, dass anzuwenden. Vielleicht kannst Du mir noch einmal auf die Sprünge helfen.

Die Zeile für sich in einer CMD bringt keine Fehlermeldung und (logischerweise) keine Ausgabemeldung.
Ein zusätzliche Zeile mit Echo %Anzahl% oder ein Anhängen mit & echo %Anzahl% = keine Fehlermeldung & keine Ausgabe
"Alles" andere bringt mir die Fehlermeldung: "|" ist syntaktisch an dieser Stelle nicht verarbeitbar.

Ich habe ja auch oft das ^ in Zusammenhang mit diesem Konstrukt gesehen. Da ich da immer noch den Durchblick habe, dachte ich mir: Probieren geht über Studieren. Ich bekomme keine Kombination (mit ohne ^, mit ohne ") hin, die mir Set Anzahl ausführt und füllt.

Markus


01.
type getacl.log | find /i /c "s0210896" 
02.
 
03.
for /f "delims=" %%i in ('type getacl.log | ^find /i /c %1') do set Anzahl=%%i 
04.
 
05.
echo Anzahl ist %Anzahl% (%%i  %1)
wobei ich das Konstrukt ab find wie folgt abgeändert habe:
(51 ist das entsprechende Ergebnis)


Versuch 1:
C:\Tools\getacl>type getacl.log | find /i /c "s0210896"
51
"|" ist syntaktisch an dieser Stelle nicht verarbeitbar.
C:\Tools\getacl>for /f "delims=" %i in ('type getacl.log | find /i /c "s0210896"
') do set Anzahl=%i


Versuch 2:
C:\Tools\getacl>type getacl.log | find /i /c "s0210896"
51
"|" ist syntaktisch an dieser Stelle nicht verarbeitbar.
C:\Tools\getacl>for /f "delims=" %i in ('type getacl.log | ^find /i /c "s0210896
"') do set Anzahl=%i



Versuch 3:
C:\Tools\getacl>type getacl.log | find /i /c "s0210896"
51
"|" ist syntaktisch an dieser Stelle nicht verarbeitbar.
C:\Tools\getacl>for /f "delims=" %i in ('type getacl.log | find /i /c s0210896')
do set Anzahl=%i
C:\Tools\getacl>m s0210896




Versuch 4:
C:\Tools\getacl>type getacl.log | find /i /c "s0210896"
51
"|" ist syntaktisch an dieser Stelle nicht verarbeitbar.
C:\Tools\getacl>for /f "delims=" %i in ('type getacl.log | ^find /i /c s0210896'
) do set Anzahl=%i


Versuch 5:
C:\Tools\getacl>type getacl.log | find /i /c "s0210896"
51
"|" ist syntaktisch an dieser Stelle nicht verarbeitbar.
C:\Tools\getacl>for /f "delims=" %i in ('type getacl.log | ^find /i /c s0210896'
) do set Anzahl=%i
Bitte warten ..
Mitglied: miniversum
09.09.2010 um 12:49 Uhr
Ach war mein Fehler. Ich habe das ungetestet geschrieben und dabei das | übersehen.
in einer For Schleife musst du das | mit dem ^ ausmaskieren, also so:
01.
for /f "delims=" %%i in ('type %logfile% ^| find /i /c "%1"') do set Anzahl=%%i
delims und tokens mußt du ggf. anpassen.
Bitte warten ..
Mitglied: BigWim
09.09.2010 um 13:13 Uhr
Super, Danke!

Jetzt funktioniert es.


in einer For Schleife musst du das | mit dem ^ ausmaskieren, also so:
Auch mein Fehler. Darf mich halt nicht (mehr) auf mein Gedächtnis verlassen. Ich hatte das ^ immer an der falschen Stelle eingefügt.


Markus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateinamen mit Punkt einer Variablen zuweisen
gelöst Frage von DanilowitzBatch & Shell4 Kommentare

Hallo Leute, Bin neu hier im Forum und hätte eine Frage zur Batchprogrammierung, zu welcher ich im Internet keine ...

Batch & Shell
Batch: Variable einen Wert zuweisen
gelöst Frage von veniplexBatch & Shell7 Kommentare

Hallo zusammen! Ich bin gerade am verzweifeln Ich habe in Batch 2 Variablen: Wenn ich mir von diesen den ...

Batch & Shell
Netzwerkkarte Variable zuweisen
gelöst Frage von Patrick-ITBatch & Shell3 Kommentare

Hallo liebes Forum Ich versuche nun schon seit einigen Tagen in Batch die Netzwerkkarten automatisch mit einer automatisch zugewiesenen ...

Batch & Shell
Vbs - Variable als Parameter an externes Programm übergeben und Rückgabewert in Variable schreiben
gelöst Frage von goodbytesBatch & Shell4 Kommentare

Hallo, ich habe ein vbs-Script, welches alle Dateien eines Verzeichnisse in ein Array schreibt. Mittels eines kleinen Tools kann ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 3 StundenErkennung und -Abwehr

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücke Spectre und ...

Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...