Dos bat file: verwijderen van een alleen-lezen + verborgen .bestand

Status
Niet open voor verdere reacties.

nkamp

Gebruiker
Lid geworden
2 mrt 2007
Berichten
129
Hallo,

Ik schrijf een bat file om bepaalde zaken op een windows systeem opnieuw te kunnen installeren. Dit wil ik dan doen via een batch verwerking met een Dos.bat file.

Echter waar ik nu tegen aanloop is dat er een bestand in de directory staat die begint met een "." en ook nog de attributen alleen lezen en verborgen heeft.

Ik probeer het met verschillende manieren maar niets lukt er maar ik heb nog niet de oplossing die deze dir + inhoud verwijderd.
Bv.
Code:
SET INSTALL_DIRECTORY=C:\WAMP\WWW\DIR

REM Geprobeerd de attributen aan te passen in de hoop dat het dan toch gewoon mee verwijderd werd
ATTRIB -R -A %INSTALL_DIRECTORY%"\.svn" /S /D

REM Ik weet nu niet zeker of del nu wel of niet ook directory's verwijdert. Ik dacht het wel... Wel verwijdert dit alle bestanden ook in de directory's.
DEL /S /Q /F /ARH-S %INSTALL_DIRECTORY%"\.svn"

REM Dit verwijdert alle resterende dir, met uitzondering van de .svn!!
FOR /D %%P IN (C:\PATH\*.*) DO RMDIR "%%P" /S /Q

Ik hoop dat er nog iemand is die hier ervaring mee heeft want het DOS tijdperk ligt al wel een tijdje achterons...

Bedankt,

Nico
 
Bedoel je dit? Volgens mij verwijdert deltree de directory en structuur? Pas daar dus mee op!
Microsoft Windows [versie 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.

D:\>del/?
Eén of meer bestanden verwijderen.

DEL [/P] [/F] [/S] [/Q] [/A[[:]kenmerken]] namen
ERASE [/P] [/F] [/S] [/Q] [/A[[:]kenmerken]] namen

namen Een lijst met één of meer bestanden of mappen. Joker-
tekens kunnen worden gebruikt om meerdere bestanden te
verwijderen. Als een map is opgegeven, worden alle bestanden
in die map verwijderd.

/P Vraagt om bevestiging voordat een bestand wordt verwijderd.
/F Forceert verwijdering van alleen-lezenbestanden.
/S Verwijdert de opgegeven bestanden uit alle submappen.
/Q Stille modus: vraagt bij gebruik van jokertekens niet om
bevestiging.
/A Selecteert de te verwijderen bestanden op basis van kenmerken.
kenmerken R Alleen-lezenbestanden S Systeembestanden
H Verborgen bestanden A Archiveringsbestanden
I Bestanden zonder geïndexeerde inhoud L Reparsepunten
- Voorvoegsel met betekenis 'niet'

Als opdrachtextensies zijn ingeschakeld, veranderen DEL en ERASE als volgt:

De weergave van schakeloptie /S worden omgekeerd zodat alleen de bestanden
worden weergegeven die zijn verwijderd en niet de bestanden die niet zijn
gevonden.

Wellicht is dit een alternatief als je de hele directory verwijderen wilt.
 
Laatst bewerkt:
. = verwijzing naar huidige directory
.. = verwijzing naar de map boven de huidige (dus naar de vader van de huidige)

Tijs.
 
Heb je Tortoise Subversion gebruikt?
Probeer eens met attrib -r -s -h
KijK of je daarna dat bestand kan verwijderen.
 
Ik heb het opgelost, achteraf stom dat ik daar niet eerder aan denk, door de hoofd dir. te verwijderen, dan wordt nl. .svn ook verwijderd! Vervolgens maak ik meteen die dir weer opnieuw aan maar dan leeg. Hoe simpel kan het zijn. Maar eigenlijk gevoelsmatig wil je enkel de inhoud van die dir verwijderen want daar gaat het om.

Deltree heb ik nog niet naar gekeken. Wel met de attrib aan het spelen geweest. Nog niet met de -h

Punt blijft, en daar ben ik nog niet achter is het mogelijk om zijn uitzonderlijk dir die met een "." begint via de dos command line te verwijderen? Ik zal morgen DELTREE ook nog eens bekijken.

Bedankt voor de reacties

Nico
 
Ik had het dus over het .svn bestand.
De . en .. zijn verwijzingen in een Directory, zoals dnties al zei in #3.
 
Je wilde denk ik te snel en te perfect werken. Dit schreef je:
die deze dir + inhoud verwijderd.
Dat vond ik direct al vreemd. Bij REM schrijf je of del wel of niet ...
Toen was je zeker in de war met deltree die doet dat wel. Destijds was die ook zo gevaarlijk omdat die vaak fout gebruikt werd.

Punt blijft, en daar ben ik nog niet achter is het mogelijk om zijn uitzonderlijk dir die met een "." begint via de dos command line te verwijderen? Ik zal morgen DELTREE ook nog eens bekijken.

Dit begrijp ik niet. Eerst schrijf je dat het een bestand is en later een directory.
er een bestand in de directory staat die begint met een "." en ook nog de attributen alleen lezen en verborgen heeft.
om zijn uitzonderlijk dir die met een "." begint via de dos command line te verwijderen?
Wat is het nu?

Bij mapnaam is het rd .mapnaam
Bij filename is het erase .filename.*
Code:
rd c:\test\".NOS Journaal"
erase c:\test\"NOS Journaal\.file name.*"
Zelf maar even testen.
 
Laatst bewerkt:
@Senso: Je maakt het onoverzichtelijk door "." te gebruiken als onderdeel van de mapnaam of bestandsnaam, terwijl de TS duidelijk bedoelde met "." de verwijzing die ik in #3 noemde.
@TS: Je kunt niet vanuit een map weggooien in DOS/CMD terwijl je in die map staat (of in een submap ervan). Dat is anders bij bestanden in die map of mappen die niet in het mappenpad liggen waar je bent op dat moment.
Dus (voorbeeld): Stel er bestaat een map C:\test\weggooien
en je gaat in DOS/CMD naar die map:
cd /d C:\test\weggooien
dan kun je niet doen:
rd /q /s C:\test\weggooien
en ook niet
rd /q /s .

Bestanden in die map kunnen wel weggegooid:
del /q *.*
of
del /q .\*.*

Stel dat er een map C:\test\DitMagWeg bestaat, dan kan die map op dat moment ook verwijderd worden, omdat die map geen onderdeel uitmaakt van het pad waar je je op dat moment in bevindt.
Dus het volgende werkt:
rd /q /s C:\test\DitMagWeg
of
rd /q /s ..\DitMagWeg

Etcetera, etcetera.

Hetzelfde geldt natuurlijk ook voor deltree: Je kunt er niet een map mee weggooien als je op dat moment je in een map bevindt in het zelfde mappenpad.

En uiteraard moet je voldoende rechten hebben om de bestanden/mappen weg te gooien.

Tijs.
 
Laatst bewerkt:
@Tijs
Laat mij dan eens iets onoverzichtelijk maken. Ik begrijp niet alles en dat zal bij anderen ook wel eens zo zijn. Soms leg jij ook wel eens zaken op een ingewikkelde manier uit. Dan is er geen vervolg door TS. Waarom zou dat zijn? Jij, anderen en ik pakken in ieder geval zaken aan en proberen met oplossingen te komen. Laat mij er dan maar eens naast zitten, fouten en blunders maken. Daar lig ik niet wakker van.
 
@senso: zeker niet mijn bedoeling om je slapeloze nacht of ander ongemak te bezorgen. Wel is het zo dat het verhaal over . en .. centraal stonden in de startposting. Dat is alles wat ik er nog over te zeggen heb. Ik waardeer de hulp die je geeft.

Tijs.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan