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 Unbekannten Ordnernamen einlesen

Mitglied: Hausen

Hausen (Level 1) - Jetzt verbinden

17.12.2008, aktualisiert 17:00 Uhr, 4175 Aufrufe, 11 Kommentare

Hallo zusammen,

ich habe eine batch-Datei (OhneQuellen.bat) geschrieben die im Verzeichnis (Rechte Maustaste - Senden an) liegt .

Dies hat folgenden zweck:

- ich klicke eine x-beliebige zip-Datei auf meinem Rechner über "Rechte Maustaste - Senden an - OhneQuellen.bat" an

z.B.: D:\Projekte\0705010 Kunde 1.zip

- Diese Datei soll dann ins Verzeichnis "D:\Projekte\Sonstige Arbeiten\Temp\OhneQuellen\" entpackt werden

Was dann wie folgt aus sieht:

D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Ordner 1
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Test 1
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Sonstiges
usw.

- In dem Ordner 0705010 Kunde 1 soll nun der Ordner "Test 1" mit Unterordnern und Dateien gelöscht werden.
- Dann soll der Ordner "0705010 Kunde 1" wieder gezippt werden zu "0705010 Kunde 1 ohne Quellen.zip"
- Und in das Verzeichnis verschoben werden aus dem die original Datei kommt also nach "D:\Projekte\"

Jetzt zu meinem Problem:

Wenn die Datei entzippt wird, weiss ich nicht wie der neu entstandene Ordner heisst da dieser nicht immer gleich dem Namen der zip-Datei ist.
Kann man diesen Ordnernamen (in meinem Beispiel der Ordner "0705010 Kunde 1") einlesen und in der Batchdatei verwenden? Und wenn ja wie?

Danke und Gruss Hausen
Mitglied: 60730
17.12.2008 um 16:26 Uhr
Servus,

ich habe eine batch-Datei (OhneQuellen.bat) geschrieben
Aha - kannst du uns die zur Verfügung stellen - oder sollen wir das rad von vorne erfinden?

Hintergrund - wenn ich deine Frage richtig interpretiere.

Wenn du schon beim anlegen der Zip den Ursprungs Pfad berücksichtigst - ist das entpacken und damit das herausfinden, woher die Zips Stammen - "einfacher".

Gruß
Bitte warten ..
Mitglied: bastla
17.12.2008 um 16:59 Uhr
Hallo Hausen und willkommen im Forum!

Die "billigste" Lösung wäre wohl, einen temporären Ordner (in dem sich nach dem Entzippen dann nur die Daten dieses einen Kunden befinden können) zu verwenden, und von diesem Ordner aus das restliche Handling vorzunehmen.

Den Kundenordner findest Du über
for /d %%i in ("D:\TempOrdner\*.*") do set "Ordner=%%i"
Grüße
bastla
Bitte warten ..
Mitglied: Hausen
23.12.2008 um 09:13 Uhr
Hallo Bastla,

entschuldige das ich mich erst jetzt wieder melde, aber ich war beruflich unterwegs.
Hier mal meine Batch:


Title=Projekt ohne Quellen speichern

:: Datei entzippen
set Quelle=%1
Set Ziel="D:\Projekte\Sonstige Arbeiten\Temp\OhneQuellen"

C:\Programme\WinZip\Wzunzip.exe -d %Quelle% %Ziel%

:: Ordnernamen ermitteln
for /d %%i in (%Ziel%\*.*) do set "Projektname=%%i"

:: Quellen löschen
rmdir /s /q "%Projektname%\s7asrcom"

:: Datei zippen
set Quelle="%Projektname%\*.*"
Set Projektname_Neu="%Projektname% Kunde"

C:\Programme\WinZip\wzzip.exe -a -ex -r -P %Projektname_Neu% %Quelle%

:: Entzipptes Programm löschen
rmdir /s /q "%Projektname%"


Es klappt jetzt aus so weit, nur habe ich nun das Problem, das wenn ich die zum Schluß gezippte Datei wieder entzippe, das diese dann den kompletten Pfad enthält.

z.B.: Die Datei die gezippt werden soll heisst : "0705010 Kunde 1"

Dann erzeugt die Batch auch die Datei "0705010 Kunde 1.zip" nur wenn ich diese dann entpacke sieht es dann so aus:

Projekte\Sonstige Arbeiten\Temp\OhneQuellen\0705010 Kunde 1.

Das liegt halt daran, as beim ermitteln des Ordnernamens der ganze Pfad eingelesen wird. Ich müsste aber nur den einzelnen Ordnernamen wissen.

Wie muss ich den Befehl dann abändern?

Gruss Hausen
Bitte warten ..
Mitglied: bastla
23.12.2008 um 17:30 Uhr
Hallo Hausen!

Da ich kein WinZip verwende, kann ich Dir leider die entsprechende Option nicht nennen - es könnte "-pr" oder etwas in der Art sein (für WinRAR wäre es zB "-ep" für "Exclude paths from names").

Du solltest den entsprechenden Schalter aber durch Aufruf der Online-Hilfe über zB
wzzip /?
oder
wzzip -help
selbst herausfinden können ...

Grüße
bastla
Bitte warten ..
Mitglied: Hausen
05.01.2009 um 08:43 Uhr
Hallo bastla,

das neue Jahr hat begonnen, also mit neuem Elan an alte Probleme.

Das mit dem wzzip klappt ja soweit, nur bei dem Befehl

for /d %%i in (%Ziel%\*.*) do set "Projektname=%%i"

wird der komplette Pfad eingelesen:

"Projekte\Sonstige Arbeiten\Temp\OhneQuellen\0705010 Kunde 1"

was ich benötige ist aber nur der letzte Ordnername, also:

"0705010 Kunde 1"

Kann ich den Befehl irgendwie abändern?

Gruss Hausen
Bitte warten ..
Mitglied: Biber
05.01.2009 um 10:12 Uhr
Moin Hausen,
Kann ich den Befehl irgendwie abändern?
Jepp, sogar zweifach.

Erstens, bitte die geeignete (hier: die Code-)Formatierung benutzen wie hier beschrieben.
Zweitens, die Zeile wie folgt abändern:
01.
for /d %%i in (%Ziel%\*.*) do set "Projektname=%%~nxi"
Dadurch wird nur der Name des "letzten" Ordners übernommen.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
05.01.2009 um 11:59 Uhr
@Biber: Danke

@Hausen: Da war ich leider zu sehr auf "gezippte Datei" und "kompletten Pfad" fokussiert (was besser klingt, als:
Den Satz "Ich müsste aber nur den einzelnen Ordnernamen wissen." habe ich glatt übersehen ... )

Grüße
bastla
Bitte warten ..
Mitglied: Hausen
05.01.2009 um 14:08 Uhr
Hallo zusammen,

danke ersteinmal für Euere antworten. Soweit funktioniert es jetzt auch.
Das Problem lag aber doch beim wzzip. Die Zeile muss wie folgt heißen:

01.
  
02.
 
03.
:: Datei zippen 
04.
set Quelle="%Projektname%\*.*" 
05.
Set Projektname_Neu="%Projektname% Kunde" 
06.
 
07.
C:\Programme\WinZip\wzzip.exe -a -ex -r -p %Projektname_Neu% %Quelle% 
08.
 


also mit einem kleinem "-p" !!

Habe aber noch eine Frage

Ich übergebe der Batchdatei ja über "Rechte Maustaste - Senden an" den komplaten Pfad mit Dateiname: "D:\Projekte\0705010 Kunde 1.zip" der dann ja im Parameter %1 liegt.

Ist es möglich den Pfad der der Datei herauszufinden?
Also in dem Beispiel: "D:\Projekte\"

Danke und Gruss

Hausen
Bitte warten ..
Mitglied: bastla
05.01.2009 um 14:13 Uhr
Hallo Hausen!

Den Pfad (inkl Laufwerk) erhältst Du mit
%~dp1
Näheres dazu: "for /?" (ziemlich am Ende; das für %I Gezeigte gilt auch für die Parameter %0 bis %9)

Grüße
bastla
Bitte warten ..
Mitglied: Hausen
05.01.2009 um 15:21 Uhr
Hallo zusammen,

so es ist geschafft! Meine kleine Batch macht alles was ich wollte
Danke an alle die mir so gut geholfen haben.

Zur Info hier mal meine Batch:

01.
Title=Projekt ohne Quellen speichern 
02.
 
03.
:: Quellordner ermitteln 
04.
for /F %%i in (%1) do set "Quellordner=%~dp1" 
05.
 
06.
:: Datei entzippen 
07.
set Quelle=%1 
08.
set Ziel="D:\Projekte\Sonstige Arbeiten\Temp\OhneQuellen" 
09.
 
10.
C:\Programme\WinZip\Wzunzip.exe -d %Quelle% %Ziel% 
11.
 
12.
:: Ordnernamen ermitteln 
13.
for /d %%i in (%Ziel%\*.*) do set "Projektname=%%~nxi" 
14.
 
15.
:: Quellen löschen 
16.
rmdir /s /q %Ziel%"\%Projektname%\s7asrcom" 
17.
 
18.
:: Ordner umbenennen 
19.
ren %Ziel%"\%Projektname%" "%Projektname% [Kunde]" 
20.
 
21.
:: Datei zippen 
22.
set Quelle="D:\Projekte\Sonstige Arbeiten\Temp\OhneQuellen" 
23.
set Projektname_Neu="%Quellordner%\%Projektname% [Kunde]" 
24.
 
25.
C:\Programme\WinZip\wzzip.exe -a -ex -r -p %Projektname_Neu% %Quelle% 
26.
 
27.
:: Entzippte (alte) Datei löschen 
28.
rmdir /s /q %Quelle%"\%Projektname% [Kunde]"
Gruss Hausen
Bitte warten ..
Mitglied: bastla
05.01.2009 um 15:29 Uhr
Hallo Hausen!

Noch eine Anmerkung zur letzten Zeile: Falls "wzzip.exe" einen definierten Errorlevel liefert, könntest Du diesen verwenden, um nur bei erfolgreichem Entpacken der Datei die alten Daten zu löschen - etwa so:
if not errorlevel 1 rd /s /q %Quelle%"\%Projektname% [Kunde]"
oder
if errorlevel 1 ( 
    echo Fehler beim Entpacken! 
    pause>nul 
    goto :eof 
rd /s /q %Quelle%"\%Projektname% [Kunde]"
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Einlesen von Passwörtern
gelöst Frage von honeybeeBatch & Shell7 Kommentare

Hallo, wie muss das Bash-Skript aussehen, wenn man Passwörter einlesen möchte? Mein Versuch führt zu dieser Fehlermeldung: read: Illegal ...

Batch & Shell
Ordnernamen aus Dateinamen erstellen
Frage von Dr.ByteBatch & Shell1 Kommentar

Hi Gemeinde, benötige ein kleines Tool. Es liegen ca 100 Dateien in einem Ordner. Ich bräuchte nun ein Tool ...

Batch & Shell

Umbenennen von Ordnernamen (anhand von Zeitstempel)

gelöst Frage von Zero90Batch & Shell7 Kommentare

Hallo, Es ist mal wieder so weit. Ich brauch wieder mal eure Hilfe. Momentan versuche ich eine Batch zu ...

Visual Studio

Variabler Ordnername VB.Net

gelöst Frage von Tealk144Visual Studio12 Kommentare

Servus, also ich habe einen Ordner an dem immer ein Datum angehängt ist, diesen Variablen namen müsste ich irgendwie ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 8 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 14 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Visual Studio
Singletone Objekt in Datei speichern
gelöst Frage von it4baerVisual Studio13 Kommentare

Hallo, ist es möglich ein Singleton-Objekt zu "serialisieren" und dann in eine Datei zu speichern um es später wieder ...