Dosyaları silmek için toplu komut dosyası


96

Aşağıdaki gibi bir toplu komut dosyam var.

D:
del "D:\TEST\TEST1\Archive\*.TSV" 
del "D:\TEST\TEST1\Archive\*.TXT"
del "D:\TEST\TEST2\Archive\*.TSV" 
del "D:\TEST\TEST2\Archive\*.TXT"
del "D:\TEST\TEST 100%\Archive\*.TSV" 
del "D:\TEST\TEST 100%\Archive\*.TXT"

Yukarıdaki kod, klasör dışındaki tüm klasörlerden tüm ".txt" ve ".tsv" dosyalarını siler TEST 100%. Dosyaları silmek için TEST 100%hatayı alıyorum The Path could not be found. Sanırım klasör adındaki% sembolü sorunu yaratıyor. Herhangi biri sorunu çözmek ve dosyaları klasörden silmek için bana rehberlik edebilir TEST 100%mi?


Neden ilk satırda bir alıntı var? Ayrıca, toplu iş dosyanız zaten ilk satırı olan o sürücüye değiştirildiğinde neden sürücüye atıfta bulunuyorsunuz? Sorununuzu kopyalamaya çalıştım ve her şey işe yaradı. Arşivin Testte% 100 olduğunu doğruladınız mı?
RonaldBarzell

Yanıtlar:


112

% 'Den başka biriyle kaçmanız gerekiyor ...

del "D:\TEST\TEST 100%%\Archive*.TXT"

OP adına konuşamam, ancak benim sistemimde% ile bir yol bulmakta sorun yok ve %% ile kaçmak sistemin onu bulmasını engelliyor.
RonaldBarzell

@ user1161318 - Windows 7'de test ettim. Çıkış olmadan bir toplu iş dosyasında "Sistem belirtilen yolu bulamıyor" ile sonuçlanır. Yayınladığım gibi çalışıyor.
Russ Freeman

Tamam, XP'de ters sonuçları alıyorum. Yolu% ile iyi bulur, ancak %% ile bulamaz.
RonaldBarzell

5
Tahminimce bunu bir toplu iş dosyasından değil komut isteminden yapıyorsunuz.
Russ Freeman

2
Muhtemelen haklısın. Bir toplu iş dosyasında% 'nin değişken bir önek olduğunu ve ondan kaçmanız gerektiğini unutuyorum. +1
RonaldBarzell

12

İşleri toplu olarak yapmanın birden fazla yolu vardır, bu yüzden yüzde çift ile kaçmak %%sizin için işe yaramıyorsa, o zaman şöyle bir şey deneyebilirsiniz:

set olddir=%CD%
cd /d "path of folder"
del "file name/ or *.txt etc..."
cd /d "%olddir%"

Bu nasıl çalışır:

set olddir=%CD%Değişkeni "olddir"veya istediğiniz başka bir değişken adını toplu iş dosyanızın başlatıldığı dizine ayarlar .

cd /d "path of folder"toplu işin bakacağı mevcut dizini değiştirir. Teklifleri saklayın ve hedeflediğiniz yolun klasör yolunu değiştirin.

del "file name/ or *.txt etc..."toplu işinizin baktığı geçerli dizindeki dosyayı siler, sadece dosya adından önce bir dizin yolu eklemeyin ve sadece tam dosya adına sahip olun *.txtveya aynı uzantıya sahip birden çok dosyayı veya ihtiyacınız olan uzantıya sahip birden çok dosyayı silin .

cd /d "%olddir%"eski yolunuzla kaydedilen değişkeni alır ve toplu işi başlattığınız dizine geri döner, grubun önceki dizin yoluna geri dönmesini istemiyorsanız ve değişken adı olarak değiştirilmeden önce belirtildiği gibi önemli değildir. dilediğinizi değiştirerek set olddir=%CD% line.


Bu en iyi şekilde yapılır pushd "folder" && del "filename" & popd.
Nuno André

10

Yazılımınızı masaüstünüze kaydettiğinizi varsayalım.
Kaldırma programı gibi tüm bir klasörü kaldırmak istiyorsanız, bunu kullanabilirsiniz.

cd C:\Users\User\Detsktop\
rd /s /q SOFTWARE

bu, yazılım adı verilen tüm klasörü ve tüm dosyalarını ve alt klasörlerini siler

Doğru Klasörü Sildiğinizden Emin Olun Bunun Bir Evet / Hayır Seçeneği Yoktur


4

Silmeniz gereken dosyaların bir uzantıya sahip txtolduğunu ve konumda bulunduğunu D:\My Folderdüşünün, ardından aşağıdaki kodu yarasa dosyası içinde kullanabilirsiniz.

cd "D:\My Folder"
DEL *.txt 

-7

toplu iş kodunda yolunuz herhangi bir Boşluk içermemelidir, bu nedenle lütfen klasör adınızı "TEST% 100" den "TEST_100%" olarak değiştirin ve yeni kodunuz "D: \ TEST \ TEST_100% \ Arşiv * .TXT" olacaktır.

umarım bu sorununuzu çözer


6
Bunu hiç duymadım. Bu yeni mi -Sarcasm kapalı. Tırnak işaretleri içinde koyduğunuz sürece boşluklarla olduğu gibi çalışır.
Blacktempel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.