Nie jestem pewien, czy istnieją jakieś rodzime sposoby, aby to zrobić, ale możesz zobaczyć ten post, aby uzyskać informacje na temat interfejsu GUI i narzędzia wiersza poleceń, które ma na każdy możliwy sposób na zmianę nazwy plików z wzorami.
Jeśli użyjesz tego narzędzia z wiersza polecenia i dodasz je do swojego PATH, powinieneś być w stanie używać go z pliku wsadowego.
Link MaQleod zawiera odpowiedź Powershell, ale jeśli interesuje Cię odpowiedź skryptu wsadowego, oto jeden ze sposobów, aby to zrobić:
@echo off
set __fileset.1=a*.txt
set __fileset.2=b*.txt
set __fileset.3=c*.txt
set __fileset.4=d*.txt
set __fileset.5=e*.txt
for /f "tokens=2* delims=.=" %%g in ('SET __fileset.') do call :CopySet "%%h"
goto :exit
:CopySet
echo xcopy "%~dpxn1" "\to_location\." /v
goto :eof
:exit
Korzystając ze __fileset.zmiennych środowiskowych, tworzysz pseudo-tablicę w pliku wsadowym. Następnie używasz forpętli do przejścia przez wszystkie dostępne wartości i wywołujesz sub, CopySetaby wykonać właściwe polecenie kopiowania. Oczywiście skrypt można ulepszyć, ale jest to tylko przykład tego, jak to zrobić.
Upewnij się, że ostatni wiersz w skrypcie wsadowym jest pusty, ponieważ jest używany przez goto :eofpolecenie do zakończenia podrzędnego i powrotu do poprzednio wywoływanej linii.
Odpowiedzi:
Nie tylko z XCOPY. Ale proste stwierdzenie FOR może pomóc:
źródło
Nie jestem pewien, czy istnieją jakieś rodzime sposoby, aby to zrobić, ale możesz zobaczyć ten post, aby uzyskać informacje na temat interfejsu GUI i narzędzia wiersza poleceń, które ma na każdy możliwy sposób na zmianę nazwy plików z wzorami.
Jeśli użyjesz tego narzędzia z wiersza polecenia i dodasz je do swojego
PATH
, powinieneś być w stanie używać go z pliku wsadowego.źródło
Link MaQleod zawiera odpowiedź Powershell, ale jeśli interesuje Cię odpowiedź skryptu wsadowego, oto jeden ze sposobów, aby to zrobić:
Korzystając ze
__fileset.
zmiennych środowiskowych, tworzysz pseudo-tablicę w pliku wsadowym. Następnie używaszfor
pętli do przejścia przez wszystkie dostępne wartości i wywołujesz sub,CopySet
aby wykonać właściwe polecenie kopiowania. Oczywiście skrypt można ulepszyć, ale jest to tylko przykład tego, jak to zrobić.Upewnij się, że ostatni wiersz w skrypcie wsadowym jest pusty, ponieważ jest używany przez
goto :eof
polecenie do zakończenia podrzędnego i powrotu do poprzednio wywoływanej linii.źródło