gooner85
Goto Top

mit Batchdatei in Versteckte Datei schreiben

String mittels Batchdatei in versteckte Datei schreiben?

Gibt es eine Möglichkeit, eine Batchdatei zu erstellen, die einen String in eine bereits existierende Versteckte Datei schreibt?

Mit der Funktion XCOPY habe ich es bereits geschafft, allerdings muss dazu der String in einer externen Txt-Datei stehen, die ebenfalls das Attribut "Versteckt" besitzt, damit beim überschreiben der Ziel-Datei diese auch wieder verseckt ist.

Ich hätte das gerne alles in einer Batch!

Content-ID: 119724

Url: https://administrator.de/contentid/119724

Ausgedruckt am: 08.11.2024 um 09:11 Uhr

TsukiSan
TsukiSan 04.07.2009 um 12:26:43 Uhr
Goto Top
Zitat von @Gooner85:
Gibt es eine Möglichkeit, eine Batchdatei zu erstellen, die einen
String in eine bereits existierende Versteckte Datei schreibt?

Ja, gibt es!
Zitat von @Gooner85:
Mit der Funktion XCOPY habe ich es bereits geschafft, allerdings muss
dazu der String in einer externen Txt-Datei stehen, die ebenfalls das
Attribut "Versteckt" besitzt, damit beim überschreiben
der Ziel-Datei diese auch wieder verseckt ist.

Ich hätte das gerne alles in einer Batch!
hast doch alles schon richtig gemacht.

...und ich hätte gern noch eine Tasse heißen Kaffee....

Gruß
Tsuki
bastla
bastla 04.07.2009 um 12:33:43 Uhr
Goto Top
Hallo Gooner85!

Etwa so:
set "Datei=D:\Die versteckte Datei.txt"  
set "String=Dein String"  

attrib -h "%Datei%" 2>nul  
>"%Datei%" echo %String%  
attrib +h "%Datei%"  
Durch die Schreibweise mit einem ">" wird die bestehende Datei überschrieben, mit ">>" würde der String an den Dateiinhalt angefügt.

Grüße
bastla
Biber
Biber 04.07.2009 um 15:01:31 Uhr
Goto Top
@bastla

a) Deine Lösung ist gemogelt.
Die sinnfreie Aufgabe war:
Gibt es eine Möglichkeit, eine Batchdatei zu erstellen, die einen String in eine bereits existierende Versteckte Datei schreibt?
Du schummelst und schreibst in eine nicht-versteckte Datei. face-wink
b)
Genau genommen schreibst Du nicht einmal in eine versteckte Datei, sondern erzeugst einfach eine neue.

c) Wolltest Du nicht eigentlich im Urlaub sein?

d) Schönen Urlaub (und Computer auslassen!)

Grüße
Biber
TsukiSan
TsukiSan 04.07.2009 um 15:40:25 Uhr
Goto Top
@ bastla,

Biber hat recht - wie immer face-wink

geh oder far'in'urlaub face-smile

ich mach das gleiche in 2 wochen.
dann heißt es ausspannen, gähn - streck

Tsuki
bastla
bastla 04.07.2009 um 16:03:50 Uhr
Goto Top
@Biber & Tsuki
Die Reaktion auf dieses Tag-Team-Mobbing muss urlaubsbedingt entfallen ... face-wink

... und aus dem gleichen Grund gibt's auch kein VBScript zur Entkräftung von a) und b) (wobei ein "ersetzendes Schreiben in die Datei" - als vermutete Zielsetzung, Stichwort: "xcopy" - sich tatsächlich auch damit nicht machen ließe).

Grüße
bastla
TsukiSan
TsukiSan 04.07.2009 um 16:10:24 Uhr
Goto Top
@bastla
deine Idee, das "h" aufzuheben, die Datei zu bearbeiten, dann wieder "h" zu setzen ist einfach genial! face-smile
Von dir kann man sehr viel lernen! Du hast dir deinen Urlaub reglich verdient und wir (Biber eventuell auch?) moppen dich gerne in deinen Urlaub face-wink

Gruß
Tsuki
80220
80220 04.07.2009 um 16:31:56 Uhr
Goto Top
Zitat von @bastla:
Die Reaktion auf dieses Tag-Team-Mobbing muss urlaubsbedingt entfallen ... face-wink


Aber eine Reaktion, wie das sehr wohl ohne attrib geht, soll doch noch kommen face-smile

@echo off & setlocal
set string=Irgendwas zum Anhaengen
for /f %%A in ('dir /ah /B *.txt') do echo %string% >> %%A  

Nur als Beispiel. Man muss sich mit der aurufenden Batch-Datei entweder im Pfad befinden, in dem sich die versteckte Datei befindet oder den entsprechenden Pfad vorher z. B. mit pushd auswählen.
*.txt ist natürlich nur ein Beispiel und funktioniert nur, wenn sich wirklich nur eine versteckte TXT-Datei im Pfad befindet. Aber es ist ja Wochende
und der TE hat sicher Zeit, sich das passend zurechtzufummeln.
Gooner85
Gooner85 04.07.2009 um 17:02:01 Uhr
Goto Top
Meine bisherige Lösung sieht so aus:

xcopy text.txt neuer ordner\xxx.txt h /h /r /y /k

Am liebsten wäre mir allerdings, dass ich meinen String nicht extra in eine Datei (hier text.txt) schreiben muss, sondern gleich in der Batch mit unterbringen kann.
80220
80220 04.07.2009 um 17:12:57 Uhr
Goto Top
Dann sieh dir mein Beispiel mal genau an. Ein bisschen Mühe musst du dir schon selbst geben.
bastla
bastla 04.07.2009 um 17:57:37 Uhr
Goto Top
@80220
Das Problem ist nicht das Finden der Datei (mit vollständiger Pfadangabe und ggf den nötigen Anführungszeichen drum rum sollte das problemlos auch von einem anderen Verzeichnis aus klappen), sondern, dass zwar ein Hinzufügen mit ">>", nicht aber ein "Neuschreiben" mit ">" funktioniert, also
set "Datei=D:\Die versteckte Datei.txt"  
set "String=Dein String"  

>>"%Datei%" echo %String%  
geht, mit Zeile 4
>"%Datei%" echo %String%
aber nicht - und, wie erwähnt, vermute ich (Gooner85 hält sich in dieser Hinsicht ja etwas bedeckt und lässt uns ratenface-wink), dass ein neuer Inhalt als Ersatz in die Datei soll ...

Grüße
bastla

P.S.: @tsuki (& Biber)
und wir (Biber eventuell auch?) moppen dich gerne in deinen Urlaub face-smile
Ja, ja, eigentlich bin ich ja eh schon weg - und danke für's Mo??en ...
face-smile
80220
80220 04.07.2009 um 18:10:34 Uhr
Goto Top
@bastla

Das habe ich dann wohl missverstanden. Wobei sich dann für mich die Frage ergibt, warum die vorhandene Datei nicht einfach gelöscht und neu angelegt wird.
Aber man kann ja bekanntich alles ganz anders und vor Allem komplizierter machen. face-big-smile


Schönen und erholsamen Urlaub. face-wink

Edit:
(mit vollständiger Pfadangabe und ggf den nötigen Anführungszeichen drum rum sollte das problemlos auch von einem anderen Verzeichnis aus klappen),
Selbstverständlich. Meine Bemerkungen bezogen sich aber ausschließlich auf das von mir gepostete Beispiel. :-P
Gooner85
Gooner85 04.07.2009 um 23:15:36 Uhr
Goto Top
Zitat von @bastla:
wie erwähnt, vermute ich
(Gooner85 hält sich in dieser Hinsicht ja etwas bedeckt und
lässt uns ratenface-wink), dass ein neuer Inhalt als Ersatz in die
Datei soll ...

Ja richtig, die versteckte Datei ist im Normalfall leer und der entsprechende String soll eben in die Datei beim Ausführen der Batch eingefügt werden.