Per DOS eine Variable in eine andere Variable kopieren
Hallo Leute,
ich habe in einem Verzeichnis ( w:\Kamera\Zwi\ ) mehrere Unterverzeichnisse.
Diese Unterverzeichnisse haben alle als Namen ein Datum.
zB. 20101014, 20101015, 20102016 usw.
Jedes dieser Unterverzeichnisse enthält Dateien welche als Namen
eine Uhrzeit haben.
zB. 121025R.txt, 134812R.txt, 152456R.txt usw.
Das Ergerbnis einer Batchprozedur sollte folgendes sein.
Alle Dateien werden in ein neues Verzeichnis ( W:\Kamera\Zeigen\........)
kopiert und sollen folgende Dateinamen haben:
20101014_121025R.txt
20101014_134812R.txt usw.
.....| ..................... |
Ordner- ......... Datei-
name ............ name
ich habe versucht die nachfolgende Bat-Datei zu erstellen.
Funktioniert leider nicht.
Wer kann helfen ?
Gruß diesta
[Edit Biber] Codeformatierung [/Edit]
ich habe in einem Verzeichnis ( w:\Kamera\Zwi\ ) mehrere Unterverzeichnisse.
Diese Unterverzeichnisse haben alle als Namen ein Datum.
zB. 20101014, 20101015, 20102016 usw.
Jedes dieser Unterverzeichnisse enthält Dateien welche als Namen
eine Uhrzeit haben.
zB. 121025R.txt, 134812R.txt, 152456R.txt usw.
Das Ergerbnis einer Batchprozedur sollte folgendes sein.
Alle Dateien werden in ein neues Verzeichnis ( W:\Kamera\Zeigen\........)
kopiert und sollen folgende Dateinamen haben:
20101014_121025R.txt
20101014_134812R.txt usw.
.....| ..................... |
Ordner- ......... Datei-
name ............ name
ich habe versucht die nachfolgende Bat-Datei zu erstellen.
@ECHO On
SET verzeichnis=W:\Kamera\Zwi
SET Daz=ABCDEFGHIJKL
FOR /F "tokens=*" %%a in ('DIR %verzeichnis% /AD /S /B') DO (
rem ++++ Die Variable %%a hat jetzt folgenden Inhalt:
rem ++++ w:\Kamera\Zwi\DATEINAME
rem ++++ Dieser Inhalt wird jetzt in die Variable Daz kopiert
set Daz=%%a
rem ++++ Jetzt soll ab Pos. 15 der Dateiname in die Variable DAT
rem ++++ kopiert werden
rem ++++ Funktioniert nicht ????????
set "Dat=%Daz:~15,8%"
rem ++++ Auch dieser copy funktioniert nicht mit *.*
COPY "%%a\*.*" "W:\Kamera\Zeigen\%Dat%_*.*"
)
Wer kann helfen ?
Gruß diesta
[Edit Biber] Codeformatierung [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153201
Url: https://administrator.de/forum/per-dos-eine-variable-in-eine-andere-variable-kopieren-153201.html
Ausgedruckt am: 04.05.2025 um 05:05 Uhr
6 Kommentare
Neuester Kommentar
Hallo diesta!
Soferne es nur eine Unterverzeichnisebene gibt, könntest Du das so versuchen (ist allerdings ungetestet):
Zum Testen kannst Du diesen Ansatz direkt an der Kommandozeile eingeben - das Ergebnis sollte die Anzeige der gewünschten "
Wenn Du einen Batch daraus machen möchtest, einfach jedes (hier) vorkommende Prozentzeichen verdoppeln und, nach Wunsch, an den passenden Stellen Deine Variablen (mit jeweils einfachen Prozentzeichen) für die Pfade einsetzen ...
Grüße
bastla
[Edit] Laufvariablen %a und %d an unten stehende Variante angepasst [/Edit]
Soferne es nur eine Unterverzeichnisebene gibt, könntest Du das so versuchen (ist allerdings ungetestet):
for /d %a in ("W:\Kamera\Zwi\*.*") do @for %d in ("%i\*.txt") do @echo copy "%d" "W:\Kamera\Zeigen\%~nxa_%~nxd"
copy
"-Befehle sein; ausgeführt werden diese aber nur, wenn Du das "echo
" vor dem "copy
" entfernst.Wenn Du einen Batch daraus machen möchtest, einfach jedes (hier) vorkommende Prozentzeichen verdoppeln und, nach Wunsch, an den passenden Stellen Deine Variablen (mit jeweils einfachen Prozentzeichen) für die Pfade einsetzen ...
Grüße
bastla
[Edit] Laufvariablen %a und %d an unten stehende Variante angepasst [/Edit]
Hallo diesta!
Wenn Du überhaupt keine Ausgabe erhältst, kann das eigentlich nur daran liegen, dass es entweder keine Unterordner von "W:\Kamera\Zwi" gibt oder sich in diesen Unterordnern keine ".txt"-Dateien befinden - daher bitte nochmals die Inhalte der Klammern prüfen ...
... oder den folgenden Batch auf Basis Deines Entwurfes (und daher ohne Einschränkung auf ".txt"-Dateien) testen:
Grüße
bastla
Wenn Du überhaupt keine Ausgabe erhältst, kann das eigentlich nur daran liegen, dass es entweder keine Unterordner von "W:\Kamera\Zwi" gibt oder sich in diesen Unterordnern keine ".txt"-Dateien befinden - daher bitte nochmals die Inhalte der Klammern prüfen ...
... oder den folgenden Batch auf Basis Deines Entwurfes (und daher ohne Einschränkung auf ".txt"-Dateien) testen:
@ECHO On & setlocal
SET verzeichnis=W:\Kamera\Zwi
FOR /F "delims=" %%a in ('DIR "%verzeichnis%" /AD /S /B') DO (
rem ++++ Die Variable %%a hat jetzt folgenden Inhalt:
rem ++++ w:\Kamera\Zwi\ORDNERNAME
FOR /F "delims=" %%d in ('DIR "%%a\*.*" /A-D /B') do ECHO COPY "%%a\%%d" "W:\Kamera\Zeigen\%%~nxa_%%~nxd"
)
bastla
Hallo diesta!
Kontrolliere zunächst das Ergebnis eines (direkt an der Kommandozeile eingegebenen)
Wenn das ok ist, versuche
Dein Test-Batch scheint nach "
Grüße
bastla
P.S.: Poste bitte Batch-Schnipsel, aber auch Ausgaben, unter ""-Tags ...
Kontrolliere zunächst das Ergebnis eines (direkt an der Kommandozeile eingegebenen)
DIR "W:\Kamera\Zwi\20101015\*.*" /A-D /B
FOR /F "delims=" %d in ('DIR "W:\Kamera\Zwi\20101016\*.*" /A-D /B') do ECHO %~nxd
ECHO COPY
" einen Zeilenumbruch zu enthalten - der gehört dort sicher nicht hin; wenn schon, dann sollte das eher so aussehen:FOR /F "delims=" %%d in ('DIR "%%a\*.*" /A-D /B') do (
echo %%a
echo %%d
ECHO COPY "%%a\%%d" "W:\Kamera\Zeigen\%%~nxa_%%~nxd"
)
bastla
P.S.: Poste bitte Batch-Schnipsel, aber auch Ausgaben, unter ""-Tags ...