W README.cppclean
hierarchii katalogów znajduje się plik o nazwie . Chcę skopiować wszystkie *.cpp
pliki z drzewa katalogów, ale nie *.cppclean
plik.
Wszystkie poniższe polecenia kopiują plik .cppclean:
xcopy /s /f ..\dirtree\*.cpp
xcopy /s /f "..\dirtree\*.cpp "
xcopy /s /f ..\dirtree\*.cpp.
xcopy /s /f "..\dirtree\*.cpp. "
Co ciekawe, poniższe polecenia nie kopiują:
xcopy /s /f ..\dirtree\*.c
xcopy /s /f ..\dirtree\*.cp
xcopy /s /f ..\dirtree\*.cppc
xcopy /s /f ..\dirtree\*.cppcl
xcopy /s /f ..\dirtree\*.cppcle
xcopy /s /f ..\dirtree\*.cppclea
Oczywiście
xcopy /s /f ..\dirtree\*.cppclean
kopiuje również plik .cppclean.
PYTANIE: Jak skopiować wszystkie *.cpp
(ale nie *.cppclean
) pliki przy użyciu XCOPY
? (Nie chcę jawnie wykluczać pliku .cppclean, ponieważ w ogólnym przypadku mogą istnieć inne podobne pliki).
źródło
*
do%~nxF
i umieszczenie przed nim `% Src%` daje oczekiwany wynik.XCOPY
polecenie wyglądaXCOPY /s /f "%Src%\*%~nxF" "%Dst%
więc tak, że nadal otrzymuje jawną nazwę z gwiazdką przed nią, a logika warunkowa nadal gwarantuje, że nie.CPP
zostaną skopiowane żadne pliki inne niż tylko pliki nazwane. Mam nadzieję, że to ci pomoże, a jeśli tak, odpowiednio zaktualizuję swoją odpowiedź.Użyj
/EXCLUDE:
argumentu. `/ EXCLUDE oczekuje pliku zawierającego listę plików wykluczonych.Stwórz więc plik o nazwie „disabledfileslist.txt” zawierający:
Następnie użyj następującego polecenia:
źródło