Batch script untuk menghapus file

96

Saya memiliki skrip batch sebagai berikut.

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"

Kode di atas menghapus semua file ".txt" dan ".tsv" dari semua folder kecuali dari folder tersebut TEST 100%. Untuk menghapus file dari TEST 100%saya mendapatkan kesalahan sebagai The Path could not be found. Saya kira simbol% ​​di nama folder menciptakan masalah. Adakah yang bisa memandu saya untuk menyelesaikan masalah dan menghapus file dari folder TEST 100%?

Satheesh
sumber
Mengapa Anda memiliki kutipan di baris pertama? Juga, mengapa Anda merujuk ke drive ketika file batch Anda sudah diubah ke drive itu dengan baris pertama? Saya mencoba mengulangi masalah Anda dan semuanya berhasil. Apakah Anda mengonfirmasi bahwa Arsip ada dalam Tes 100%?
RonaldBarzell

Jawaban:

112

Anda harus keluar dari% dengan yang lain ...

del "D:\TEST\TEST 100%%\Archive*.TXT"
Russ Freeman
sumber
Saya tidak dapat berbicara untuk OP, tetapi di sistem saya tidak ada masalah menemukan jalur dengan%, dan melarikan diri dengan %% membuat sistem tidak menemukannya.
RonaldBarzell
@ user1161318 - Saya mengujinya pada Windows 7. Tanpa pelolosan, dalam file batch, menghasilkan "Sistem tidak dapat menemukan jalur yang ditentukan". Seperti yang saya posting itu berhasil.
Russ Freeman
Ok, di XP saya mendapatkan hasil sebaliknya. Ia menemukan jalurnya baik-baik saja dengan%, tetapi gagal menemukannya dengan %%.
RonaldBarzell
5
Dugaan saya adalah Anda melakukannya dari command prompt dan bukan dari file batch.
Russ Freeman
2
Mungkin Anda benar. Saya selalu lupa bahwa dalam file batch,% adalah awalan variabel dan Anda harus menghindarinya. +1
RonaldBarzell
12

Ada banyak cara untuk melakukan banyak hal dalam kelompok, jadi jika melarikan diri dengan dua persen %%tidak berhasil untuk Anda, maka Anda dapat mencoba sesuatu seperti ini:

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

Bagaimana ini bekerja:

set olddir=%CD%menetapkan variabel "olddir"atau nama variabel lain yang Anda suka ke direktori tempat file batch Anda diluncurkan.

cd /d "path of folder"mengubah direktori saat ini yang akan dilihat batch. simpan kutipan dan ubah jalur folder ke jalur mana pun yang Anda tuju.

del "file name/ or *.txt etc..."akan menghapus file di direktori saat ini yang dilihat oleh batch Anda, hanya saja jangan menambahkan jalur direktori sebelum nama file dan hanya memiliki nama file lengkap atau, untuk menghapus beberapa file dengan ekstensi yang sama dengan *.txtatau ekstensi apa pun yang Anda butuhkan.

cd /d "%olddir%"mengambil variabel yang disimpan dengan jalur lama Anda dan kembali ke direktori tempat Anda memulai batch, tidak penting jika Anda tidak ingin batch kembali ke jalur direktori sebelumnya, dan seperti yang dinyatakan sebelum nama variabel dapat diubah menjadi apapun yang Anda inginkan dengan mengubah set olddir=%CD% line.

pengguna1931470
sumber
Ini paling baik dilakukan melalui pushd "folder" && del "filename" & popd.
Nuno André
10

Katakanlah Anda menyimpan perangkat lunak Anda ke desktop Anda.
jika Anda ingin menghapus seluruh folder seperti program uninstaller, Anda dapat menggunakan ini.

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

ini akan menghapus seluruh folder yang disebut perangkat lunak dan semua file serta subfoldernya

Pastikan Anda Menghapus Folder yang Benar Karena Ini Tidak Memiliki Opsi Ya / Tidak

pengguna3674709
sumber
4

Pertimbangkan bahwa file yang perlu Anda hapus memiliki ekstensi txtdan terletak di lokasi D:\My Folder, maka Anda dapat menggunakan kode di bawah ini di dalam file bat.

cd "D:\My Folder"
DEL *.txt 
Sarath Avanavu
sumber
-7

dalam kode batch, jalur Anda tidak boleh berisi Spasi, jadi harap ubah nama folder Anda dari "TEST 100%" menjadi "TEST_100%" dan kode baru Anda akan dihapus "D: \ TEST \ TEST_100% \ Archive * .TXT"

berharap ini akan menyelesaikan masalah Anda

Ravi
sumber
6
Belum pernah dengar itu. Apa itu baru? -Sarkasme lepas. Ini berfungsi dengan spasi seperti halnya tanpa, selama Anda mengaturnya dalam tanda kutip.
Blacktempel