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

Wenn die Datei kein Ordner ist soll er die Endung entfernen

Frage Entwicklung Batch & Shell

Mitglied: Blueberry

Blueberry (Level 1) - Jetzt verbinden

23.10.2008, aktualisiert 26.01.2012, 4466 Aufrufe, 8 Kommentare

Hallo Zusammen,

Ich habe ein Programm das Dateien komprimiert (Standard-Zip-Format), aber wenn ich da ein .TXT File rein gebe, dann gibt es die endung .txt.zip... Da ich aber auch Ordner zippen möchte, kann ich nicht einfach die Endung "abschneiden"... Kann mir da jemand einen Trick verraten?
Danke!

Mit freundlichen Grüssen

Blueberry
Mitglied: miniversum
23.10.2008 um 14:53 Uhr
Nehmen wir an der Speicherort der Datei bzw. des Ordners die/den Du komprimieren willst Steht in der Variabeln %in%, dann kansnt Du einfach überprüfen ob das eine Datei ist oder ein Ordner. Das geht dann so:
01.
dir /A-D "%in%"* >NUL 2>NUL && echo Ist eine Datei
Edit:
1. & durch && ersetzt
2. * hinter Variable eingefügt
Bitte warten ..
Mitglied: bastla
23.10.2008 um 15:06 Uhr
@miniversum
Sei doch nicht so geizig mit den "&"

(Im Klartext: Mit "&&" wird der folgende Befehl nur ausgeführt, wenn es beim vorhergehenden Befehl keinen Fehler - oder noch genauer: als Ergebnis des vorigen Befehls den Errorlevel 0 - gab; dies ist bei "dir" dann der Fall, wenn zumindest ein passender Eintrag gefunden wurde).

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
23.10.2008 um 15:10 Uhr
Ups ich werds gleich mal ändern.. Das passiert mir in letzter Zeit viel zu oft das ich sowas vergese irgentwie.. hmmm... Ich werd woll langsam alt ;)
Ichhab übrigens auch noch gade eben hinter der Variabeln ein * hinzugefügt weil es unter Vista sonst nicht funktioniert wie ich grade festgestellt habe.
Bitte warten ..
Mitglied: Blueberry
24.10.2008 um 08:17 Uhr
Hallo Zusammen,

Danke für die Tipps (auch wenn ich schon um 15:00 nach Hause ging und das darum anderst gelöst habe... Und ich habe es auch ein bisschen anderst gelöst . Aber trotzdem danke vielmals!)
So da wäre meine Lösung:

FOR /F "TOKENS=1 DELIMS=" %%A IN ("%~n1") DO SET A=%%A

ist doch auch ne Coole Lösung

<edit>
Miniversum kannst du noch erklären, was das alles macht ???
Damit ich drauskomme was der da genau macht...
Ich danke dir jetzt schon!
<\edit>


Mit freundlichen Grüssen
Blueberry
Bitte warten ..
Mitglied: bastla
24.10.2008 um 08:48 Uhr
Hallo Sandro!

Anmerkungen zu Deiner Lösung:
Da "TOKENS=1" defaultmäßig verwendet wird, kannst Du es einfach weglassen (vor allem auch, da wegen "DELIMS=" ohnehin nur ein Token erzeugt wird).

Um bei im Namen enthaltenen Leerzeichen den gesamten Namen in die Variable %A% zu bekommen, solltest Du
... SET "A=%%A"
verwenden (bzw es Dir überhaupt zur Gewohnheit machen, bei "set"-Anweisungen die Anführungszeichen so zu setzen).

Grüße
bastla
Bitte warten ..
Mitglied: Blueberry
24.10.2008 um 09:08 Uhr
Moin Bastla,

Danke für deine Tipps, sind sehr hilfsreich! Ich werde es mir merken!

Mit freundlichen Grüssen
Blueberry
Bitte warten ..
Mitglied: miniversum
24.10.2008 um 10:05 Uhr
Deine lösung ist allerdings nciht ganz wasserdicht, da sie nicht überprüft ob es ordner oder dateien sind sondern es wird einfach nur alles vor dem letzten Punkt abschneidet. Bei einem ordner mit dem Namen "Mein.Ordner" würde das shcief gehen...

Klar kann ich dir erklären wie meine Lösung funktioniert.
Mit dem Dir-Befehl kannst du mit der Option /a-d nur Dateien anzeigen lassen (/ad wären nur Verzeichnisse). Rufst du also den Befehl so auf:
01.
dir /a-d "meine datei"
würdest Du die Ausgabe nur dieser einen Datei bekommen (und der Errorlevel den Dir zurückliefert wäre 0 weil was gefunden wurde). Wäre "meine Datei" ein Verzeichnis würde nichts angezeigt werden (da ja nur nach ateien gefiltert wird) und dir würde einen errorlevel von 1 zurück liefern. Der * dahinter wird benötigt da im fall eines Verzeichnisses sonst der Inhalt des Verzeichnisses angezeigt werden würde statt des Verzeichnisses selbst.
Als nächstes wird die, in diesem Fall störende, Ausgabe des Dir-Befehls unterdrückt und nur der errorlevel ausgewertet. Die Umleitung der Ausgabe geschieht so:
01.
 >NUL 2>NUL 
Die Abfrage des Errorlevels ist auf zwei Arten möglich.
Einmal indem man darunter ein
01.
If %errorlevel% == 0 (
schreibt oder den Operator && bzw. || verwendet.
Bei einem && wird der darauf folgende Befehl nur ausgeführt wenn der Befehl davon erfolgreich abgearbeitet wurde, also der Errorlevel = 0 ist. Mit || würde der folgende Befehl nur abgearbeitet werden bei Errorlevel 1 oder höher.
Bitte warten ..
Mitglied: Blueberry
24.10.2008 um 10:16 Uhr
Hallo Miniversum,

Danke für deine Erklärung, sie ist sehr ausführlich, so ausführlich das sogar ich das checke . Und danke für die Lösung. Und das wegen meiner Lösung teste ich noch schnell ( Nicht weil ich dir nicht vertraue, sondern einfach aus Prinzipien und weil mein Lehrmeister auch immer sagt ich soll alles testen ).

<edit>
Meine Lösung ist wirklich nicht Wasserdicht!
Aber es geht um Ordner mit dem Namen "Woche XX" XX steht für die Wochenzahl.
<\edit>


Mit freundlichen Grüssen ...ond e gueti Zyt
Blueberry
Bitte warten ..
Ähnliche Inhalte
Viren und Trojaner
CryptoLocker und seine wechselnden Datei-Endungen
Erfahrungsbericht von TharenViren und Trojaner24 Kommentare

Hallo, aus aktuellem Anlass hier ein Screenshot eines vor kurzem bemerkten Falls der LOCKY-Familie (siehe Bilder) interessant ist, dass ...

Batch & Shell
Datei-Endungen, Listen und Sortierung (Batch)
gelöst Frage von clragonBatch & Shell5 Kommentare

Hallo Leute, Ich habe ein kompliziertes ( so wie eigentlich immer, und kompliziert natürlich subjektiv ) Effizienz-Problem. Ich versuch ...

Batch & Shell
Batch-datei gesucht um (Zwischen)-Ordner zu entfernen, Inhalte aber zu belassen
gelöst Frage von bobbbyBatch & Shell6 Kommentare

Hallo liebe Experten für Batch-files unter Win (7, 64bit), Meine Problemstellung: In meinem Workflow beim Importieren von Bilddaten und ...

Windows 7
Windows 7 Suche in Dateien ohne Endung
gelöst Frage von markymark76Windows 74 Kommentare

Hallo. Ein Windows 7 (64)-System verwaltet für eine Fräsmaschine die erstellten Programme übers Netzwerk: Die erstellten Fräsprogramme werden auf ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 8 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 8 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 16 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...