Saya memiliki skrip kumpulan dari Wikipedia:
@echo off
for /R "C:\Users\Admin\Ordner" %%f in (*.flv) do (
echo %%f
)
pause
Dalam for-loop semua file dengan flv ekstensi dapat digaungkan, tapi saya ingin membuat beberapa tindakan dengan file (s) di mana saya perlu satu kali file tanpa ekstensi dan satu kali dengan ekstensi. Bagaimana saya bisa mendapatkan keduanya?
Saya mencari solusi tetapi saya tidak menemukannya. Saya seorang pemula nyata dalam batch ...
file
batch-file
Poru
sumber
sumber
C:\Users\Admin\Ordner\foo.flv
dan %% ~ nf akan memberi Andafoo
. Jika Anda menginginkan semuanya kecuali ekstensi gunakan %% ~ df %% ~ pf %% ~ nf yang akan memberi AndaC:\Users\Admin\Ordner\foo
%%~dpnf
akan menjadi alternatif yang lebih pendek.%1
dalam skrip batch.echo %~n1
adalah apa yang saya kejar.Jika file yang Anda pegang variabel tidak benar-benar ada,
FOR
pendekatannya tidak akan berfungsi. Satu trik yang bisa Anda gunakan, jika Anda tahu panjang ekstensi, adalah mengambil substring:yang
-4
berarti bahwa 4 digit terakhir (mungkin Ext ) akan dipotong.sumber
echo %f:~0,-4%
dalam konteks contoh yang digunakan dalam pertanyaan. Apa yang saya lakukan salah?SET fl=%%f
dan kemudianecho %fl:~0,-4%
Saya juga orang asing di windows cmd, tetapi coba ini:
sumber
Ini adalah respon yang sangat terlambat, tetapi saya datang dengan ini untuk memecahkan masalah tertentu yang saya miliki dengan DiskInternals LinuxReader menambahkan '.efs_ntfs' ke file yang disimpan ke direktori non-NTFS (FAT32):
sumber
.encrypted
menambahkan ke semua file-nya, bersama dengan permintaan tebusan. Rupanya skrip penyerang harus berupa file batch yang merupakan kebalikan dari ini dan ditambahkan.encrypted
ke semua file.Saya menggunakan ini jika saya hanya ingin menghapus ekstensi dari variabel (tanpa mengulang direktori apa pun atau file yang ada):
Jika Anda ingin menghapus ekstensi dari path lengkap, gunakan
%%dpnf
:Contoh:
(Gunakan langsung di konsol)
sumber
Menggunakan cygwin bash untuk melakukan pemotongan
sumber
Jika variabel Anda adalah argumen, Anda bisa menggunakan
%~dpn
diikuti oleh nomor argumen, jadi Anda tidak perlu khawatir untuk memvariasikan panjang ekstensi.Misalnya
%~dpn0
akan mengembalikan path file batch tanpa ekstensi,%~dpn1
akan%1
tanpa ekstensi, dll.sumber