2013-08-15 2 views
0

Я хочу создать простой пакетный скрипт, который:Copy, а затем удалить файлы

  1. копирует все файлы внутри папки A в текущей директории (который также содержит некоторые файлы)
  2. Выполняет некоторые команды
  3. Удалить все скопированные файлы

прямолинейным решением является перебрать все файлы внутри A, скопировать их и сохранить их список. Затем очистите в конце.

Но мне интересно, есть ли лучшее решение.

ответ

1
@echo off 
copy "c:\A\*.*" . 
rem run commands 
for %%a in ("c:\a\*.*") do del "%%~nxa" 
0

Сохранить список файлов, копировать их, делать вещи, а затем удалить с помощью списка:

dir /b A >list.txt 
copy A\*.* . 

rem do stuff here 

for /F "delims=" %%i in (list.txt) do del %%i 
del list.txt 
0
@echo off &setlocal 
set "folder=%userprofile%\A" 
set "dirlist=my dirlist.txt" 

dir /b "%folder%" > "%dirlist%" 
copy "%folder%" 

rem doit here 

for /f "usebackq delims=" %%a in ("%dirlist%") do erase "%%~a" 

Он принадлежит вам заботиться о дубликатов файлов.

0
@echo off 
attrib +R *.* 
copy \A\*.* 
rem run commands 
del *.* 
attrib -R *.* 

Конечно, этот метод работает только в том случае, если команды не изменяет любого из исходных файлов, но это быстрее, а также предотвращает перезапись любого из исходных файлов.

Смежные вопросы