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

Batch Datei und Zähler

Frage Microsoft Windows Tools

Mitglied: mado

mado (Level 1) - Jetzt verbinden

09.10.2005, aktualisiert 10.10.2005, 10529 Aufrufe, 8 Kommentare

Hallo,

ich benötige für eine Batch Datei einen Zähler der folgendes macht.

Hintergrund:
Jeden Tag werden 5 Dateien in einen Ordner für einen Filetransfer zur Verfügung gestellt. Die Dateien sind ab.txt , cd.txt, ef.txt etc...
Diese werden dann umbenannt in ab01.txt, cd01.txt etc...

Nun werden manchmal an einem Tag zwei oder mehrere von diesen Dateien erzeugt. Hierbei soll nun geprüft werden ob die Datei ab01.txt schon existiert, und wenn ja die umbennung in ab02.txt erfolgen. Diese soll natürlich für den Wertebereich 01 - 99 möglich sein.

Nun möchte ich natürlich nicht jede Datei mit If exist ab01.txt rename ab02.txt prüfen sondern dass Ganze über eine Schleife oder ähnliches lösen/automatisieren

Hat jemand dazu einen Tip?
Mitglied: pasman
09.10.2005 um 16:18 Uhr
Hallo

schau dir mal FOR an


FOR /L %Variable IN (Start,Schritt,Ende) DO Befehl [Parameter]

Der Satz ist eine Folge von Zahlen von Start bis Ende und der
angegebenen Schrittweite. So erzeugt (1,1,5) die Folge 1 2 3 4 5 und
(5,-1,1) erzeugt die Folge (5 4 3 2 1).
Bitte warten ..
Mitglied: Biber
09.10.2005 um 17:14 Uhr
@pasman

Dem kann ich eigentlich nur wenig hinzufügen. Ich schaff das immer nicht, mich so kurz zu fassen.

In epischer Breite ausformuliert würde das sinngemäß so aussehen können:
::
01.
 ---------snipp copyCountedNames.bat 
02.
@echo off & setlocal 
03.
Set "AllMyFiles=ab cd ef gh ij" 
04.
Set SrcFolder="Z:" 
05.
Set TargetFolder="Z:\temp" 
06.
For %%i in (%AllMyFiles%) do ( 
07.
    if exist %SrcFolder%\%%i.txt call :copyAsNewName %%i 
08.
09.
goto :eof  
10.
 
11.
:copyAsNewName 
12.
Set "NewName=" 
13.
for /L %%a in (1,1,9) do ( 
14.
      if not defined NewName if not exist %TargetFolder%\%10%%a.txt set "NewName=%10%%a.txt" 
15.
16.
for /L %%a in (10,1,99) do ( 
17.
if not defined NewName if not exist %TargetFolder%\%1%%a.txt set "NewName=%1%%a.txt" 
18.
19.
echo Hier käme ein copy %SrcFolder%\%1.txt %TargetFolder%\%NewName% 
20.
goto :eof 
21.
::---------snapp copyCountedNames.bat
Test: (im SrcFolder existieren ab.txt und cd.txt; im TargetFolder ab01.txt und ab02.txt)
Z:\>
>CopyCountedNames.bat
Hier käme ein copy "Z:"\ab.txt "Z:\temp"\ab03.txt
Hier käme ein copy "Z:"\cd.txt "Z:\temp"\cd01.txt</code>

Das war vermutlich das, was Du auch meintest.

Grüße
Biber
Bitte warten ..
Mitglied: mado
10.10.2005 um 09:03 Uhr
Hallo,

erst mal danke bei mir funktioniert das Ganze aber nicht so.
Hier mal meine batch.

REM ERSTELLE DATUM
@echo off
for /F "tokens=6,7,9" %%i IN ('showclok -c') DO (
set DT_MON=%%i
set DT_DAY=%%j
set DT_YEAR=%%k)
set WOCHENTAG=%DT_YEAR%-%DT_MON%-%DT_DAY%

REM Umbennenen
RENAME F:\Ausgang\AB.TXT AB%WOCHENTAG%.TXT
RENAME F:\Ausgang\CE.TXT CE%WOCHENTAG%.TXT

REM ZIPPE die DATEIEN
c:\Programme\WinZip\wzzip.exe F:\Ausgang\AB%WOCHENTAG%.zip F:\Ausgang\AB%WOCHENTAG%.TXT
c:\Programme\WinZip\wzzip.exe F:\Ausgang\CE%WOCHENTAG%.zip F:\Ausgang\CE%WOCHENTAG%.TXT

KOPIERE ES ZUM VERSAND
xcopy "F:\Ausgang\AB%WOCHENTAG%.zip" F:\Versand\
xcopy "F:\Ausgang\CE%WOCHENTAG%.zip" F:\Versand\


FOR %%A IN (F:\Ausgang\*.*) DO DEL %%A

Also ich sollte vor dem umbennen die Schleife einbauen. Leider bekomme ich nur Fehlermeldungen!
Was mache ich da falsch?
Bitte warten ..
Mitglied: Biber
10.10.2005 um 09:54 Uhr
Hm, Mado,

das scheint aber eine geringfügig andere Zielsetzung zu sein als in Deiner Anforderung oben.... *ggg

Ich weiß ja nicht genau, wo und was für Fehlermeldungen kommen - ich vermute mal, die kommen an der Stelle "Rename..." , falls schon gleichnamige Dateien da sind?

Kommentier doch kurz das "@Echo off" aus, damit Du etwas siehst.
Und ebenfalls erstmal auskommentieren würde ich die letzte Zeile (Quelldateien löschen).

Biber
Bitte warten ..
Mitglied: mado
10.10.2005 um 10:33 Uhr
Hallo beim ausführen der Anweisung
For %%i in (%AllMyFiles%) do (if exist %SrcFolder%\%%i.txt call :copyAsNewName %%i)

stimmt die Dateinabgabe nicht richtig %SRCFOlder% kommt mit Leerstelle an und anschliessend die Fehlermeldung der Befehel %AllMYFiles% ist falsch geschrieben.
Bitte warten ..
Mitglied: Biber
10.10.2005 um 11:16 Uhr
Tja, Mado,

<s>beim Setzen von %Newname% war ein führendes Leerzeichen zuviel. Sorry.
Hab ich oben auch eingefügt (set "NewName=%Newname:~1%").</s>

Mit den anderen Fehlermeldungen kann ich nichts anfangen (nicht reprozierbar bei mir).

Sollte ja auch nur eine Skizze sein.

Hast Du sonst noch Änderungen in meiner Skizze gemacht?

Biber
Bitte warten ..
Mitglied: mado
10.10.2005 um 11:37 Uhr
soweit so gut
nun läuft alles bis zum Kopiervorgang durch, wenn ich das :EOF auskommentiere und bricht dann mit einer ungültigen Parameteranzahl ab.
Der Fehler muss irgendwo im Befehl copy liegen?!
Hier die batch:

Set "AllMyFiles=ab cd ef gh ij"
Set SrcFolder=C:\TEST\AUSGANG
Set TargetFolder=C:\TEST\VERSAND

For %%i in (%AllMyFiles%) do (
if exist "%SrcFolder%\%%i.txt" call :copyAsNewName %%i
)
rem goto :eof
pause
:copyAsNewName
set "NewName=%Newname:%1%"

for /L %%a in (1,1,9) do (
if not defined NewName if not exist %TargetFolder%\%10%%a.txt set "NewName=%10%%a.txt"
)
for /L %%a in (10,1,99) do (
if not defined NewName if not exist %TargetFolder%\%1%%a.txt set "NewName=%1%%a.txt"
)
pause
xcopy %SrcFolder%\%1.txt %TargetFolder%\%NewName%
pause
goto :eof
Bitte warten ..
Mitglied: Biber
10.10.2005 um 12:47 Uhr
Moin, mado,

der Fehler liegt hier:

Set SrcFolder=C:\TEST\AUSGANG
Set TargetFolder=C:\TEST\VERSAND

...da hast Du ein Leerzeichen zuviel (am Ende der Zeile).
Wird also interpretiert als
Set "SrcFolder=C:\TEST\AUSGANG "
Set "TargetFolder=C:\TEST\VERSAND "

Richtiger wäre, wenn Du es in Anfü-Zeichen setzt (auch wenn es bei M$ nicht dokumentiert ist, vertrau mir... *gg), also:
Set "SrcFolder=C:\TEST\AUSGANG"
Set "TargetFolder=C:\TEST\VERSAND"

Hand
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
In Batch Zählen
gelöst Frage von mavericklpBatch & Shell2 Kommentare

Guten Morgen zusammen, Ich habe ein kleines Problem mit einer Zählschleifer in der Batch Datei. Und zwar werden die ...

Batch & Shell
Zahlen in Batch addieren...
gelöst Frage von Hans87Batch & Shell2 Kommentare

Hallo, ich habe ein batch skript geschrieben, das zwei SQL Abfragen ausführt. Beide geben Werte zurück. Die zurückgegebenen Werte ...

Batch & Shell
Zahlen aus Textdatei in Batch vergleichen
gelöst Frage von yspke24Batch & Shell7 Kommentare

Hi, ich habe schon stundenlang im Internet gesucht, konnte aber nichts Passendes finden. Ich habe eine Textdatei "time.log". In ...

Batch & Shell
Zahlen in Batch auseinander schreiben
gelöst Frage von PanubuBatch & Shell6 Kommentare

Hallo zusammen, ich habe folgendes in Batch geschrieben: Das Ergebnis, wenn ich bspw. 1234 eingebe soll so aussehen: A1d2m3i4n ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 8 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 9 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server12 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...