Plik .bat Kopiujący, kasujący zmieniający nazwę

Odpowiedz Nowy wątek
2019-09-11 14:57
0

Witam,

szukam pomysłu w jaki sposób :

  1. skanować folder w poszukiwaniu pojawiających się plików .txt,
  2. następnie zmienić jego nazwę (21 znak nazwy zmiana cyfry 3 na 9)
  3. skopiować do innego folderu z nową nazwą
  4. skasować plik w starej lokalizacji

Przykładowa nazwa pliku to: 2019-09-09 16_04_10 9760001010 RAVP_4

edytowany 1x, ostatnio: Arkadiusz Ciszewski, 2019-09-11 14:58

Pozostało 580 znaków

2019-09-11 14:59
0

Czy to musi być plik .bat? Bo o wiele prościej będzie moim zdaniem stworzyć jakąś mini-aplikację, pobierającą parametry z wiersza poleceń (podane podczas uruchamiania) i wykonująca określone zadanie.


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
aplikację, aplikację, kiedyś do takich rzeczy pisało się skrypt w Perlu, ale kto dziś umie Perla - Kamil Żabiński 2019-09-11 15:02
Aplikacja jest bezpieczniejsza i wygodniejsza. Bezpieczniejsza, bo nikt Ci nie będzie grzebać, dajesz plik EXE i nie boisz się, że potem jakiś "magik" coś namiesza. A po drugie - jednak "prawdziwe" języki są lepsze do takich zastosowań, mają większe możliwości, większą dostępność bibliotek itp. Po prostu - tak jest wygodniej. Nie mówię, że inaczej się nie da, ale apka jest wygodniejsza :P - cerrato 2019-09-11 15:07

Pozostało 580 znaków

2019-09-11 15:08
0

nie musi być .bat, szukałem czegoś prostego

Pozostało 580 znaków

2019-10-10 10:53
0

ja proponuję dwie drogi:

  1. sprawdzenie daty utworzenia pliku - np. pod koniec dnia zbieranie plików z bieżącym dniem utworzenia,
  2. logowanie zmian w strukturze folderu do pliku i porównywanie stanu zapisanego w pliku i bieżącego w folderze.

Poniżej przykład pierwszej ścieżki.

@Echo off

For /f "skip=5 tokens=1,4* delims= " %%a In ('Dir /o:-d /t:c /-c *.txt') Do (
    If %%a Equ %date% (
        Echo Zmien nazwe pliku %%b
        Echo Przenies plik %%b do nowej lokalizacji
    )
)

powodzenia
--
Paweł

edytowany 3x, ostatnio: Pawel L., 2019-10-10 10:57

Pozostało 580 znaków

2019-10-10 11:13
0

jeśli chodzi o zmianę nazwy pliku:

        Set NazwaPliku=2019-09-09 16_04_10 9760001010 RAVP_4
        Echo %NazwaPliku:~0,20%#%NazwaPliku:~21,256%

całość po poprawkach wyglądałaby tak:

@Echo off

SETLOCAL ENABLEDELAYEDEXPANSION

For /f "skip=5 tokens=1,4,*" %%a In ('Dir /o:-d /t:c /-c *.txt') Do (
    If %%a equ %date% (
        Set NazwaPliku="%%b %%c"
        Rem tu znak # zastępuje 21 znak w nazwie pliku
        Echo !NazwaPliku:~0,21!#!NazwaPliku:~22,256!
    )
)
edytowany 3x, ostatnio: Pawel L., 2019-10-10 11:21

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0