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

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

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.

0

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

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ł

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!
    )
)

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