要更具體地瞭解問題,我有一個文件夾層次結構。批處理刪除沒有自己子文件夾的所有子文件夾
Render/a/b/c/d/e/f
其中Δf是1和4
例如,你可以有之間的數字.. 渲染/ 1/1/3/2/4/1 /(Somefile.jpg)
由於空間限制,我不需要最後一層子文件夾或其內容。
我的想法是編寫一個批處理文件,該文件將遍歷所有文件夾及其子文件夾,直到找到不包含其他子文件夾的文件夾,表示其最後一個文件夾,然後沿着文件夾刪除文件夾與其內容。
系統設置的方式是否有基礎渲染。該渲染被分成4個子渲染,從而得到更詳細的(因此1-4個子目錄)。 因此,每個文件夾可能包含4個圖像,以及4個包含更小,更詳細圖像的子目錄。 該文件夾不需要擁有所有4個子目錄,這取決於該特定渲染的大小。 最後,有一組最不詳細的圖像。
我能理解 RD/Q/S方向1 一塊代碼,與 爲%%我在(套) 但能夠將它們組合在一起來執行這項任務,我大惑不解一起。
1)找到渲染目錄的所有子目錄。 2)移到第一個目錄,找到所有的子目錄。 3)重複步驟2 4)如果沒有子目錄,我知道它的最後一次渲染 5)刪除內容和目錄 6)移回目錄,並繼續通過 7)重複整個過程與第2,3,4目錄。
我可以用c#執行這個任務,但我需要有一個.bat文件。
編輯: 我原來是爲了批處理,是因爲它很簡單,只需要一個文件。但是,我決定使用perl腳本,因爲兩個文件並不比一個糟糕。
# read zoomlevel from generated file.js
my $zoomlevel=0;
my $maxzoom=0;
if (open OC,"Render/file.js")
{
foreach (<OC>)
{
if (index($_, "zoomLevels") != -1)
{
@data = split(' ', $_);
$zoomlevel=substr $data[1],0,1;
print "$data[1]\n";
print "$zoomlevel\n";
}
if (index($_, "maxZoom") != -1)
{
@data = split(' ', $_);
$maxzoom=substr $data[1],0,1;
print "$data[1]\n";
print "$maxzoom\n";
}
}
my $numdelete=$zoomlevel-$maxzoom;
print "I'm going to delete $numdelete zoomlevels.\n";
for($count = 0; $count < $numdelete; $count++) {
print "deleting zoomlevel ".($zoomlevel-$count).".\n";
my $delstr = "Render/render/".'*/' x ($zoomlevel-$count)."*.jpg";
unlink glob "$delstr";
}
}
else
{print "couldn't open file\n";}
然後我只是創建了一個運行perl腳本的批處理文件。
@echo off
perl removal.pl
pause
堆棧溢出是專業和發燒友程序員的問題和答案網站。問題必須**表現出對所解決問題的最小理解**。告訴我們你試圖去做什麼,爲什麼它沒有工作,以及它應該如何工作。另請參閱:[堆棧溢出問題清單](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。 – Endoro