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%?


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"

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.


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


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 

-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


6
Belum pernah dengar itu. Apa itu baru? -Sarkasme lepas. Ini berfungsi dengan spasi seperti halnya tanpa, selama Anda mengaturnya dalam tanda kutip.
Blacktempel
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.