Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Neue Datei mit gleichem Namen nur andere Endung und leer...

Frage Entwicklung Batch & Shell

Mitglied: MarcelGausG

MarcelGausG (Level 1) - Jetzt verbinden

08.10.2007, aktualisiert 17.10.2007, 4694 Aufrufe, 15 Kommentare

hallo ihr da draussen,

ich brauch ma wieder eure Hilfe ;)

ich habe eine Datei ( z.b. XXX_to_XXXXXX.ORDRSP.0770.txt). Nun bräuchte ich ein Batchfile das mir eine Neue Datei erstellt, die den gleichen Namen hat, nur die Endung anstatt *.txt ---- *.done und der Inhalt muss leer sein.

Hoffe das war etz irgendwie klar Also der Dateiname ändert sich natürlich immer wieder.

Schon mal "Danke"

Gruß
Mitglied: zacharias
08.10.2007 um 16:26 Uhr
DIR *.TXT /B > MyList
FOR /F "DELIMS=" %%i IN (MyList) DO ECHO.>%%i.DONE
DEL MyList

Mit freundlichem Gruß
zacharias
Bitte warten ..
Mitglied: Biber
08.10.2007 um 16:47 Uhr
Moin MarcelGausG,

etwas geradliniger:
01.
for %i in (*.txt) do @echo.>"%~ni.done"
[...wenn es alle *.txt (be-)treffen soll.]

Grüße
Biber
Bitte warten ..
Mitglied: MarcelGausG
09.10.2007 um 08:31 Uhr
hallo ...

schon mal vielen Dank .... aber leider geht des net bei mir .... beides net ... bin in Sachen Batch leider ein Vollnoob ... *sorry dafür* vielleicht hab ich mich auch schecht ausgedrückt ....

ich versuchs nochmal

ich hab also eine Datei namens "bla_to_blabla.ORDRSP.0836.txt" .... Nun brauch ich eine Datei... mit dem gleichen Namen also "bla_to_blabla.ORDRSP.0836" und mit der Endung "*.done" sollte danach quasi so aussehen ... "bla_to_blabla.ORDRSP.0836.done" und die Datei darf keinen Inhalt haben....

Hoffe jetzt ist es besser erklärt Wäre nett wenn ihr mir helfen könntet ...

Gruß
Bitte warten ..
Mitglied: Biber
09.10.2007 um 08:50 Uhr
Moin MarcelGausG,

was genau "###" bei Dir denn nicht?

Meine CMD-Prompt-Simulation zeigt keine Auffälligkeiten:
01.
>echo sdsds>la_to_blabla.ORDRSP.0836.txt 
02.
 
03.
>for %i in (la_to*.txt) do @echo @echo.^>"%~ni.done" 
04.
@echo.>"la_to_blabla.ORDRSP.0836.done" 
05.
 
Soweit ich es zu erkennen vermag, würde genau der gewünschte Effekt herauskommen.

Was habe ich übersehen?

Gruß
Biber
[Edit] Fehler gefunden. Die obige Variante würde eine Datei *.done mit 2 Byte Länge (ein CRLF) erzeugen.

Besser (nicht eleganter) wäre:
01.
for %i in (la_to*.txt) do findstr "Biber war hier" "%i">"%~ni.done
Bitte warten ..
Mitglied: MarcelGausG
09.10.2007 um 09:15 Uhr
Hallo Biber...

also wenn ich das hier eintippe :


echo sdsds>IVS_to_Amazon.ORDRSP.0836.txt

for %i in (IVS_to*.txt) do @echo @echo.^>"%~ni.done"

@echo.>"IVS_to_Amazon.ORDRSP.0836.done"

macht er bei mir gar nichts ... ist das "sdsds" richtig ?? oder muss ich da was anderes dafür eintippeln ?

gruß
Bitte warten ..
Mitglied: Biber
09.10.2007 um 09:25 Uhr
Moin MarcelGausG,

nein, das Ergebnis der Simulation war schon richtig. Genau das sollte auch herauskommen.
Ich hatte inzwischen aber noch einen Nachtrag, ein "Edit" oben gemacht.
Probier dieses mal bitte aus.

Gruß
Biber
Bitte warten ..
Mitglied: MarcelGausG
09.10.2007 um 09:28 Uhr
sorry ... er macht bei mir gar nichts ( also er erzeugt keine neue datei ) .... keine ahnung was ich falsch mache ... *gruml*

das hier sagt er mir:

D:\>make_it_done.bat

D:\>echo sdsds 1>IVS_to_Amazon.ORDRSP.0836.txt
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters ist ungültig: %~ni.done

Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig sind.
Syntaxfehler.
D:\>for i">"n (la_to*.txt) to findstr "Biber war hier" "%i">%ni.done
D:\>



gruß
Bitte warten ..
Mitglied: Biber
09.10.2007 um 11:33 Uhr
Moin MarcelGausG,

meine Zeile war zum Abfeuern vom CMD-Prompt aus gedacht.
In einem Batch müssen alle dynamischen Variablen (i.e. %i) mit zwei Prozentzeichen statt einem geschrieben werden.

01.
::---- snipp MakeMeDune.bat 
02.
@for %%i in (la_to*.txt) do findstr "Biber war hier" "%%i">"%%~ni.done 
03.
::---- snapp MakeMeDune.bat
Grüße
Biber
Bitte warten ..
Mitglied: MarcelGausG
09.10.2007 um 14:48 Uhr
DU BIST DER BESTE !!!! DANKE

woher soll ich denn sowas wissen ??? Hab doch geschrieben das ich ein Vollnoob bin !!! :D


Vielen Dank nochmal ...

Gruß

Marcel
Bitte warten ..
Mitglied: Biber
09.10.2007 um 20:09 Uhr
Moin MarcelGausG,

>...Hab doch geschrieben das ich ein Vollnoob bin

Na ja, das ist immer eine zwiespältige Aussage hier und in anderen Foren.
Viele FragestellerInnen outen sich sehr schnell bei der Beitragseröffnung als "Noob", "hab leider gar kein Plan", "keine Ahnung wie..", schreiben aber im nächsten Satz, dass sie ganz schnell, weil furchtbar wichtig, eine Lösung haben MÜSSEN, die in einer Endlosschleife eine Webseite aufruft, die Quersumme aller darauf befindlichen Hotline-Telefonnummern berechnet und mit diesem Wert n das CD-Laufwerk n-mal auf- und wieder zuschiebt, während im Hintergrund Gustav Mahlers Sinfonie Nr. 10 erklingen soll (aber nur aus dem rechten Lautsprecher)....

Kurz gesagt, viele der so selbstbezeichneten Noobs wollen hier eine (handwerklich) professionelle Lösung für ein abgedrehtes und an den Haaren herbeigezogenes Szenario - und sind eben nicht daran interessiert, wie oder warum etwas funktioniert, sondern nur dass es funktioniert.

Um dann beim nächsten Jägermeister-mit-Redbull-Abend den Kumpels zu zeigen "Kuck ma' was mein PC kann".

Das ist einer der Gründe dafür, dass selbst so geduldige Wissensteiler wie ich manchmal die Erklärung und die Herleitung der Lösung nur auf explizite Nachfrage abliefern und im ersten Wurf nur eine Quick-and-Dirty-Ergebnisskizze auf den Forumsboden werfen.
Für einen großen Prozentsatz der Eintags-User reicht das (leider) offensichtlich.

Nichtsdestotrotz - wenn Fragen offen sind oder etwas erklärt werden soll: BITTE FRAGEN !

Dieses Forum hier ist durchaus dafür offen, dass auch "Noobs" kommen.
Nur sollten diese auch den Willen und die Einstellung mitbringen "Ich werde dieses Forum nicht als Noob verlassen".

Grüße
Biber
Bitte warten ..
Mitglied: ToffiFee
16.10.2007 um 14:48 Uhr
Hey, wir haben hier so ziemlich das selbe Problem, allerdings brauchen wir für jede *.exe datei eine datei mit entsprechendem namen und der endung *.exe.local.

wir sind jetzt streng nach der anleitung vorgegangen, allerdings sind in manchen unserer Dateien immernoch Inhalte. Vielleicht könnte mir Marcel mal die endgültige lösung die funktionier hat posten? Das müsste sich doch mit .exe dateien genauso verhalten wie mit allen anderen auch oder? Wenn jemand einwände hat, bitte melden =)

Gruß,
Bene
Bitte warten ..
Mitglied: Biber
16.10.2007 um 16:09 Uhr
Moin ToffiFee,

eigentlich sollte in der Tat auch bei *.exe-Dateien die Mimik die Gleiche sein.
Andererseits kann bei Exe-Dateien natürlich wirklich der Fall eintreten:
  • "Biber was here" steht in der Datei
  • oder: Findstr schreibt einen Text "Datei xxx konnte nicht geöffnet werden", wenn die *.exe-Datei durchsucht wird.

Bitte ändere es wie in folgendem CMD-Prompt-Beispiel:
01.
>for %i in (%windir%\w*.exe) do @echo "%i"|find "Biber was here" >%~nxi.local 
02.
 
03.
C:\Dokumente und Einstellungen\Biber 
04.
>dir *.local 
05.
 Datenträger in Laufwerk C: ist System XP 
06.
 Volumeseriennummer: 0815-4711 
07.
 
08.
 Verzeichnis von C:\Dokumente und Einstellungen\Biber 
09.
 
10.
16.10.2007  15:37                 0 winhelp.exe.local 
11.
16.10.2007  15:37                 0 winhlp32.exe.local 
12.
               2 Datei(en)              0 Bytes
In diesem Beispiel leite ich aus allen w*.exe-Namen im %windir%-Verzeichnis entsprechende 0-Byte-Kopien mit der Zusatzendung ".local" ab.

Gruß
Biber
Bitte warten ..
Mitglied: zacharias
16.10.2007 um 16:18 Uhr
@Biber

Man könnte doch auch wie folgt eine 0Byte-File erzeugen:

01.
del *.local 
02.
for %i in (%windir%\w*.exe) do fsutil file createnew "%i.local" 0
Anscheinend muss man aber die Files vorher löschen, da er sonst die
Datei nicht erstellen kann und überschreiben tut er sie nicht.

Aber ob ich jetzt "DEL *.LOCAL" sage oder in jede *.LOCAL-Datei was
reinshifte (@echo "%i"|find "Biber was here" >%~nxi.local) ist eh egal.

Mit freundlichem Gruß
zacharias
Bitte warten ..
Mitglied: Biber
16.10.2007 um 16:34 Uhr
Jepp, zacharias,

irgendwie seriöser sieht Dein Code schon aus... ist manchen Kunden schwer vermittelbar, warum der Text "Biber was here" in einer Produktiv-Umgebung eingebaut ist

Aber dann hätte ich noch eine Variation Deiner Lösung:

01.
for %i in (%windir%\w*.exe) do ( 
02.
  If exist "%i.local" del "%i.local" 
03.
  fsutil file createnew "%i.local" 0  
04.
)
...damit auch nur diejenigen *.local gelöscht werden, die auch neu angelegt werden.

Grüße
Biber
Bitte warten ..
Mitglied: ToffiFee
17.10.2007 um 08:02 Uhr
ah,herrlichst =)
funktioniert jetzt so weit, hab noch das w*.exe in ".exe" geaendert, da, sagt mir wenn ich mich taeusche, sonst ja nur alle .exe dateien gesucht werden die mit w beginnen. und das %windir% hab ich entfernt, da die aktion ja im aktuellen verzeichnis ausgeführt werden soll... haben uns gestern kurz vor feierabend mit der aktion noch nen rechner geschossen indem wir den modifizierten code fuer die textdateien von marcel auf das c:/windows verzeichnis gejagt haben, ich hoffe das passiert jetzt nicht nochmal =)

bis dahin allerbesten Dank an alle unterstützer.
Gruß,
Bene
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...