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

Batch Datei und Zähler

Frage Microsoft Windows Tools

Mitglied: mado

mado (Level 1) - Jetzt verbinden

09.10.2005, aktualisiert 10.10.2005, 10456 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...