Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#14

Re: bat-datei commands

  Alt 20. Apr 2007, 12:44
Zitat von Christian Seehase:
Dann zeig' mir doch bitte mal ein Beispiel, wie Du es anders lösen würdest.
Ich wuerde einen der Operatoren zur Pfadmanipulation benutzen. Bspw. %~dpVARIABLENNAME% (%~pVARIABLENNAME% reicht hier auch)

Alternativ habe ich auch noch eine mit NT4 kompatible Variante in petto, welche sich hier findet: http://forum.f-prot.com/index.php/topic,243.0.html (muesste aber angepasst werden um statt des letzten Teils den ersten auszugeben).

Aber hier die (IMO) korrektere Variante (mit der Einschraenkung unter dem naechsten Zitat von dir - Stichwort: Kontext):
Code:
set DIR_=%~dp0
del %DIR_%\*.txt
Koennte auch einfach nur "del %DIR_%*.txt" lauten.

Ich sage dir auch, wieso ich denke, dass das korrekter (gibt sicher andere Varianten) ist. ".." bedeutet im Kontext eines Verzeichnisses "das darueberliegende Verzeichnis" - die Skriptdatei ist ja nun aber kein Verzeichnis, folglich ist es semantisch falsch, auch wenn es dank des einprogrammierten Shortcuts "alles bis zum davorliegenden Backslash aus dem Pfad entfernen, falls es dort noch einen Backslash gibt" trotzdem funktioniert.

Kaeme halt drauf an. Ich gehe davon aus, dass ich einen solchen Hack wie du auch anwenden wuerde, wenn es nicht sauber sein muss sondern "einfach nur" funktionieren soll

Zitat von Christian Seehase:
Klar, den . gibt es schon seit DOS, aber wenn vor dem del-Kommando das aktuelle Verzeichnis sich geändert hat, könnte man sich ein Problem einhandeln
Das ist wahr, aber die meisten Programmier- und Skriptsprachen sind modal, der Kontext also relevant. Im uebrigen enthaelt %0 innerhalb einer aufgerufenen Funktion eben auch nicht den Dateinamen des Skripts, sondern den Namen der aufgerufenen Funktion. Hier ist es also ebenso wichtig in welchem Kontext dein Code aufgerufen wird

Beispiel:
Code:
@echo off
call :FUNCTION blablubb
:: Exit script
goto :EOF

:FUNCTION
:: Prints ":FUNCTION"
echo %0
:: Return to caller
goto :EOF
  Mit Zitat antworten Zitat