nowyouseeme93

Netshare Batch aus CMD auslesen und in CSV erstellen

Das bekomme ich aus cmd Befehl:

Share name Resource Remark

ADMIN$ C:\Windows Remote Admin
IPC$ Remote IPC
I$ I:\ Default share
D$ D:\ Default share
F$ F:\ Default share
bilder F:\Intranet\Bilder\xnnnn
Telefonbuch F:\meinacc\acc\telefon\nummern
meinbestershare1
F:\meinbestershare1\hhn
meinbestershare2
F:\meinbestershare1\hhn\nnh
bildernew F:\Intranet\Bilder\new\bilder


Ich muss den Namen und den Pfad mittels Batch Befehl in eine csv Datei umwandeln
Das Problem ist aber:
Wenn der Share Name zu groß ist wird der Pfad erst in der nächten Zeile angezeigt. Und bei einer For Schleife nimmt der Pfad dann den Token 1 an da er alleine in der nächsten Zeile steht.

Das zweite Problem ist, dass er "Remote" als Token 2 nimmt weil kein Pfad an Token2 gegeben wird.

mein erster Ansatz:

@echo off

FOR /F "tokens=1,2 delims= " %%A IN (sharename.txt) do echo %%A>> ergebnis.txt

Ich sag schonmal Danke an diejenigen die mir da weiter helfen können.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 282414

Url: https://administrator.de/forum/netshare-batch-aus-cmd-auslesen-und-in-csv-erstellen-282414.html

Ausgedruckt am: 02.06.2025 um 13:06 Uhr

DerWoWusste
DerWoWusste 09.09.2015 um 20:14:17 Uhr
Goto Top
Hi.

In Powershell
get-WmiObject -class Win32_Share
114757
114757 09.09.2015 aktualisiert um 20:48:15 Uhr
Goto Top
Moin,
simpler Powershell-Schnippsel:
gwmi Win32_Share | select Name,Path,Description | export-csv 'C:\export.csv' -Delimiter ";" -NoType -Encoding UTF8  
Oder direkt in eine Batch eingebaut sieht's dann so aus:
@echo off
set "export=C:\shares.txt"  
powershell -ExecutionPolicy ByPass -Command "gwmi Win32_Share | select Name,Path,Description | export-csv '%export%' -Delimiter ";" -NoType -Encoding UTF8"  
Gruß jodel32

p.s. Hallo oder Gruß wären ganz schön, hier arbeiten immerhin noch Menschen und keine Roboter
nowyouseeme93
nowyouseeme93 09.09.2015 um 22:20:51 Uhr
Goto Top
Hallo und vielen Dank für deinen Beitrag.

Gibt es aber auch eine Lösung ohne Powershell, also DOS Lösung ?

Viele Grüße
114757
Lösung 114757 10.09.2015 aktualisiert um 15:46:00 Uhr
Goto Top
Gibt es aber auch eine Lösung ohne Powershell, also DOS Lösung ?
Der zweite Code ist direkt für eine Batch vorgesehen...

Das hier geht ebenfalls, für die museumsreifen Batchler :-P
(for /f "skip=1 delims=" %%a in ('wmic path win32_share get Name ^| findstr "."') do @echo %%a)>"C:\shares.txt"  
Gruß jodel32
nowyouseeme93
nowyouseeme93 10.09.2015 um 11:02:46 Uhr
Goto Top
Hallo

vielen Dank, damit bekomme ich endlich schon mal die Namen der Shares raus. ich will aber noch den Pfad zu jeder Sharename haben.

Ich sag mal so: Mein Ergebnis soll in einer csv sein. wenn ich dies in Excel importiere soll Sharenamen, Pfad, letzte Änderung, und die Berechtigungen erscheinen und das alles tabelarisch. Ist dies mit einer Batch Programmierung möglich ?

wenn ich ... ('wmic path win32_share get Name, Path ^| findstr "."') .. eingebe bekomme ich den Fehler: Ungültiger GET-Ausdruck

Wäre super wenn ihr mir weiterhelfen könntet

Liebe Grüße
114757
114757 10.09.2015 aktualisiert um 11:13:32 Uhr
Goto Top
(for /f "delims=" %%a in ('wmic share get Name^,Path /format:csv ^| findstr "."') do @echo %%a)>"C:\shares.csv"  
nowyouseeme93
nowyouseeme93 10.09.2015 um 11:26:20 Uhr
Goto Top
Hallo

DANKE DANKE DANKE !! Das ist genau das wonach ich gesucht habe. Nochmals vielen Dank

nun wie kann ich sehen welcher Share für wen freigegeben ist und wann die letzte Aktualisierung im Ordner war

Ihr seit echt klasse face-smile

Gruß
114757
114757 10.09.2015 aktualisiert um 11:37:20 Uhr
Goto Top
nun wie kann ich sehen welcher Share für wen freigegeben ist und wann die letzte Aktualisierung im Ordner war
War das jetzt ne Frage ??

Wie gesagt bescchäftige dich mal mit Powershell, damit musst du nicht 1001 Umwege gehen:
https://gallery.technet.microsoft.com/scriptcenter/List-Share-Permission ...
DerWoWusste
DerWoWusste 10.09.2015 aktualisiert um 11:43:43 Uhr
Goto Top
PS: für Powershell in Batch kannst Du auch
powershell get-WmiObject -class Win32_Share >c:\test\output.txt
nehmen.

Edit:ups, jetzt hab ich's an Jodels Beitrag und nicht an Deinen gehängt face-smile
nowyouseeme93
nowyouseeme93 10.09.2015 um 12:11:45 Uhr
Goto Top
Das Ding ist ja ich darf kein Powershell benutzen ich muss alles in Batch schreiben ohne Powershell Befehle. Ich weiss es wäre einfacher aber das muss in Batch geschrieben werden

Viele Grüße
114757
114757 10.09.2015 aktualisiert um 12:39:27 Uhr
Goto Top
Das Ding ist ja ich darf kein Powershell benutzen ich muss alles in Batch schreiben ohne Powershell Befehle.
Man merkt, geht wieder Richtung Freitag, wohl mal wieder ein Schüler, der sich hier seine Hausaufgaben machen lässt ;-P

icacls is your friend ...
DerWoWusste
DerWoWusste 10.09.2015 um 12:49:13 Uhr
Goto Top
Was Jodel sicher sagen will: "Das ist Batchcode".
114757
114757 10.09.2015 aktualisiert um 12:51:45 Uhr
Goto Top
Was Jodel sicher sagen will: "Das ist Batchcode".
Jup face-smile da hat's bei Ihm noch nicht geschnackelt...