我有一個文件夾(temp文件夾)三種文件刪除文件夾中的所有文件,除非列表文件是使用批處理
1.txt
2.exe
3.txt
現在,我將使用批處理寫腳本刪除該文件夾中的所有文件除了一個文件(3.txt)。如何在腳本中編寫它。我嘗試使用
del temp /Q
但它會刪除我的文件夾中的所有文件。我不想全部刪除。我只想刪除1.txt和2.exe。考慮文件的數量很大。
我有一個文件夾(temp文件夾)三種文件刪除文件夾中的所有文件,除非列表文件是使用批處理
1.txt
2.exe
3.txt
現在,我將使用批處理寫腳本刪除該文件夾中的所有文件除了一個文件(3.txt)。如何在腳本中編寫它。我嘗試使用
del temp /Q
但它會刪除我的文件夾中的所有文件。我不想全部刪除。我只想刪除1.txt和2.exe。考慮文件的數量很大。
您可以使用命令
except 3.txt del temp /Q
它會刪除該文件夾中的所有文件,除了3.txt
如果通過目錄的內容循環,你可能希望你可以申請任何邏輯,並在這些內容上執行您可能需要的任何操作。例如:
@echo off
setlocal enableextensions enabledelayedexpansion
set dirPath=C:\Users\BuvinJ\Desktop\test
pushd !dirPath!
:: Loop through all files in this directory
for %%a in (*) do (
set fileName=%%a
if "!fileName!"=="1.txt" (
echo FOUND: !fileName!
) else (
echo OTHER: !fileName!
)
)
:: Loop through all sub directories in this directory
for /d %%a in (*) do (
set dirName=%%a
echo Directory: !dirName!
)
popd
您可能還想要「遞歸地」逐步瀏覽內容,即向下鑽入嵌套子目錄。爲此,請在for語句之後添加/ r(例如,使用示例中的/ d來循環目錄而不是文件)。
更多關於這種循環中,檢查了這一點:http://ss64.com/nt/for2.html
哪個版本批次/ Windows命令提示符您使用的是?我從來沒有見過「除了」,並且當我嘗試這個時,我有一個錯誤。此外,這個語法對於批處理來說看起來很奇怪... – BuvinJ
我認爲你必須在路徑上添加這個批處理:http://stackoverflow.com/a/558677/1952213 – Lupocci