a0d0s0
Goto Top

Pfadangabe Fehler

Hallo,

ich habe mir ein config - File geschriben , mit dessen Hilfe ich kinderleicht meine Pfade aktualisieren kann.


Configfile:

pfad_old=Y:\Video_Tool\Video\VIDEO_OLD 
pfad_new=Y:\Video_Tool\Video\VIDEO_NEW 
pfad_waiter=Y:\Video_Tool\Video\VIDEO_WAITER 
pfad_backup=Y:\Video_Tool\Video\VIDEO_BACKUP 
pfad_start=Y:\Video_Tool\Scripts\FILE_WAITER.bat 
pfad_delete=Y:\Video_Tool\Scripts\delete.bat 
pfad_conf=Y:\Video_Tool\Scripts\config.bat 

ich aktualisiere die Pfade in den verschiedenen Files mit:

set config=Y:\Video_Tool\config.ini

for /f "tokens=1,2 delims==" %%a in (%config%) do (  
if %%a==pfad_old set pfad_old=%%b
)


Jetzt will ich die Namen in einem Ordner ändern. Der Pfad aus dem Configfile heißt z.B. C:\Video_Tool\VIDEO_WAITER , wenn ich jetzt , wie im folgenden Code
etwas an den Pfad dranhänge , wird das Anhängsel nicht erkannt.

for %%i in (%pfad_waiter%\*.*) do (
ren %%~i %ort%%trenn%!zaehler!%%~xi
set /a zaehler = %zaehler+1
)

Also wird anstatt alle Files im Ordner WAITER nur der komplette Ordner umbenannt.


Bitte um Hilfe, Greez A0D0S0

Content-Key: 170433

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

Printed on: April 16, 2024 at 14:04 o'clock

Member: bastla
bastla Jul 26, 2011 at 12:39:38 (UTC)
Goto Top
Hallo A0D0S0!

Schwer nachvollziehbar, dass der Ordner umbenannt würde; selbst, wenn die Zeile 3 tatsächlich so aussähe, wie von Dir gepostet - richtig wäre
set /a zaehler=!zaehler!+1
oder
set /a zaehler=zaehler+1
oder noch einfacher
set /a zaehler+=1

Lass den Batch mal ohne "echo off" laufen und kontrolliere, was in der Schleife genau passiert ...

Grüße
bastla
Member: A0D0S0
A0D0S0 Jul 26, 2011 at 12:46:39 (UTC)
Goto Top
hallo,
ich habe mir auch schon gedacht, dass das nicht passt, aber es funktioniert ,keine Ahnng warum , habe es aber jetzt trotzdem geändert ^^

,Mein Problem liet darin , dass der Teil nach der Pfadvariable nicht beachtet wird.

sprich:

for %%in (%pfad%\*.*) do () --> das \*.* wird nicht erkannt, nur dass %pfad%

durchlaufen geht nicht (mit echo off) weil es irgendwo abbricht -.-


greez A0D0S0
Member: bastla
bastla Jul 26, 2011 at 12:50:58 (UTC)
Goto Top
Hallo A0D0S0!
durchlaufen geht nicht (mit echo off) weil es irgendwo abbricht -.-
Genau dafür ist ja das Anzeigen der Befehle gut - schau mal, welcher Befehl den Abbruch verursacht, bzw welcher davor noch richtig ausgeführt wurde ...
Übrigens: Zur Sicherheit würde ich generell Anführungszeichen verwenden, also etwa
for %%i in ("%pfad_waiter%\*.*") do (
schreiben ...

Grüße
bastla
Member: A0D0S0
A0D0S0 Jul 26, 2011 at 13:02:14 (UTC)
Goto Top
hallo,

wenn ich " " verwende, wird der Pfad gar nicht annerkant ?

greez A0D0S0
Member: bastla
bastla Jul 26, 2011 at 13:12:01 (UTC)
Goto Top
Hallo A0D0S0!

Jetzt kann ich Dir dann gar nicht mehr folgen ...

... zumindest nicht ohne mehr Information - poste daher bitte den kompletten Batch bzw die oben angesprochene Konsolenausgabe der Befehle!

Grüße
bastla
Member: A0D0S0
A0D0S0 Jul 26, 2011 at 18:56:12 (UTC)
Goto Top
Der Code ( Teilstück):

setlocal enabledelayedexpansion 

set trenn=_

set config=C:\Video_Tool\config.ini

for /f "tokens=1,2 delims==" %%a in (%config%) do (  
if %%a==pfad_waiter set pfad_waiter=%%b
)
set /P ort=Veranstaltungsort...?
set /P zaehler=Anfangszahl...?
set /a vzaehler=%zaehler%

for %%i in (%pfad_waiter%\*.*) do (
ren %%~i %ort%%trenn%!zaehler!%%~xi
set /a zaehler +=1
)

Wenn ich in der Klammer die "" setze : for %%i in ("%pfad_waiter%\*.*") , wird der Ausdruck gar nicht erkannt.

greez A0D0S0
Member: bastla
bastla Jul 26, 2011 at 19:19:00 (UTC)
Goto Top
Hallo A0D0S0!
Wie ist
wird der Ausdruck gar nicht erkannt.
zu verstehen, was passiert im Ablauf?
Zum Aktualisieren der Variablen übrigens ein Tipp: Wenn Du einmal vorweg eine Schleife der Art
for /f "delims=" %%a in (%config%) do set "%%a"
verwendest, wären damit alle Pfade dem Inhalt der ini-Datei eintsprechend gesetzt ...

Grüße
bastla
Member: A0D0S0
A0D0S0 Jul 26, 2011 at 19:24:30 (UTC)
Goto Top
danke, habe dass Problem gelöst indem ich im Config - File ein zusätzliches Trennzeichen hinter dem
Pfad drangehängt --> siehe da , keine Fehler mehr ^^ ( Da zwischen dem Pfad immer ein Leerzeichen war ).


Wende jetzt noch dein Tipp mit der Schleife an.

danke, Greez A0D0S0
Member: bastla
bastla Jul 26, 2011 at 19:33:39 (UTC)
Goto Top
Hallo A0D0S0!

In der Config-Datei sollten natürlich keine "trailing blanks", also Leerzeichen am Ende der Pfade, stehen - das wäre auch bei meinem Alternivvorschlag kontraproduktiv ...

Grüße
bastla