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

FOR über alle Verzeichnisse AUSSER...

Frage Entwicklung Batch & Shell

Mitglied: 56921

56921 (Level 1)

05.11.2007, aktualisiert 15:26 Uhr, 4262 Aufrufe, 5 Kommentare

Hallo,

ich komme bei folgendem Problem nicht weiter und bin für ein paar Anregungen dankbar.

Ich will alle Unterverzeichnisse, die sich in einem Verzeichnis befinden, zippen, ausser die Verzeichnisse, die mit einem Underline (_) anfangen.

Bis hierhin bin ich schon mal gekommen:
FOR /D %%i IN (c:\temp\*) DO SET DIR_LIST=!DIR_LIST!,"%%i"
ENDLOCAL & SET DIR_LIST=%DIR_LIST%

Die _-Verzeichnisse wollte ich mit FINDSTR /R /C:"^[^_]" ausschließen, aber das matcht aus irgendeinem Grund nicht?!

Hat noch jemand ne andere Idee?

Danke & Gruß,
Carsten
Mitglied: bastla
05.11.2007 um 12:21 Uhr
Hallo carsten-h und willkommen im Forum!

Versuch es vielleicht eher so:
01.
for /f "delims=" %%i in ('dir /b /ad c:\temp\*^|findstr /v /b "_"') do SET DIR_LIST=!DIR_LIST!,"c:\temp\%%i"
Grüße
bastla

[Edit] Fehlendes "^" vor "|findstr ..." nachgetragen. [/Edit]
Bitte warten ..
Mitglied: Biber
05.11.2007 um 14:23 Uhr
Moin carsten-h,

und die Strategie, die Du meintest, würde sich in etwa so lesen:
[Proof-of-concept am CMD-Prompt]
01.
>for /d %i in (*) do @for /f "delims=" %i in ('echo %i^|findstr "^_"') do @echo set DIR_LIST=!DIR_LIST!;"c:\temp\%~i" 
02.
set DIR_LIST=!DIR_LIST!;"c:\temp\_even older dir" 
03.
set DIR_LIST=!DIR_LIST!;"c:\temp\_oldDir"
Bzw mit und ohne DelayedExpansion im Batch:
01.
::---- Mit DelayedExpansion 
02.
@echo off & setlocal EnableDelayedExpansion 
03.
Set DIR_LIST= 
04.
:: [....ergänzen: Wechseln ins "richtige" Verzeichnis, z.B. "c:\temp"] 
05.
for /d %%i in (*) do for /f "delims=" %%i in ('echo %%i^|findstr /v "^_"') do set DIR_LIST=!DIR_LIST!;"c:\temp\%%~i"
01.
::---- Ohne DelayedExpansion 
02.
@echo off & setlocal 
03.
Set DIR_LIST= 
04.
:: [....ergänzen: Wechseln ins "richtige" Verzeichnis, z.B. "c:\temp"] 
05.
for /d %%i in (*) do for /f "delims=" %%i in ('echo %%i^|findstr /v "^_"') do call setDIR_LIST "%~i" 
06.
echo %DIR_LIST% 
07.
goto :eof 
08.
 
09.
:setDIR_LIST 
10.
Set DIRLIST=%DIR_LIST%;"c:\temp\%~1" 
11.
goto :eof
[ungetestete Skizzen]

Gruß
Biber
Bitte warten ..
Mitglied: 56921
05.11.2007 um 14:46 Uhr
Hallo,

danke für den Vorschlag. Prinzip hab ich verstanden, aber es funktioniert leider nur der innere Teil (dir /b usw.) der Zeile. Wenn ich nur den ausführe, werden mir auch nur die gewünschten Verzeichnisse angezeigt.

Führe ich den kompletten Befehl in der Kommandozeile aus, bekomme ich ein "| was unexpected at this time." zurück. Das Skript bricht ohne Fehlerausgabe einfach ab. Hab ich die falschen Quotes (') genommen oder ist es ein Problem, dass ich sozusagen ja 2 Befehle ausführen lasse?

Gruß,
Carsten
Bitte warten ..
Mitglied: bastla
05.11.2007 um 14:56 Uhr
Hallo carsten-h!

War leider mein Fehler - vor dem "|" fehlte das "^" (ist inzwischen oben korrigiert).

Grüße
bastla
Bitte warten ..
Mitglied: 56921
05.11.2007 um 15:26 Uhr
Danke!!! Ich bin begeistert!

Gruß,
Carsten
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 10
Windows 10 scheinbar irreparabel ausser Gefecht ?! (1)

Frage von immel73 zum Thema Windows 10 ...

Batch & Shell
gelöst Powershell Verzeichnisse vergleichen mit Zwischenschritt (22)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Suse
gelöst Mehrere Verzeichnisse bei Suche ausschliessen (3)

Frage von Jeduja zum Thema Suse ...

Backup
BackUp Exec2015 IMG Verzeichnisse (1)

Frage von gruener.puma zum Thema Backup ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...