Mengonversi nama file panjang menjadi nama pendek windows 10?

0

Apakah ada cara untuk mengubah nama file panjang menjadi bentuk pendek terpotong pada pc? Apakah ada cara sederhana untuk melakukan hal ini? Saya baru menggunakan command prompt / PowerShell dan tidak sepenuhnya mengerti apa yang dilakukan skrip panjang dan bagaimana memodifikasinya.

Saya ingin mentransfer semua file saya ke hard drive eksternal tetapi banyak file dari mac dengan nama panjang dan saya menerima kesalahan ketika saya mencoba untuk mentransfernya.

Animator
sumber
Apakah Anda berbicara tentang menggunakan nama file DOS (8 + 3) atau hanya lebih pendek dari yang ada sekarang. Jika demikian, bagaimana sebuah skrip tahu apa nama file. Anda membutuhkan aturan. Juga apa kesalahan yang Anda dapatkan ?, nama file yang panjang seharusnya tidak menjadi masalah pada Windows 10 kecuali mereka benar-benar panjang.
Peter Hahndorf
Saya ingin mengubah nama mereka menjadi nama file DOS (8 + 3). Kesalahan yang saya terima saat mentransfer adalah nama file terlalu panjang. Nama file yang sangat panjang melebihi batas Windows.
Animatoring
Benar-benar jalur yang panjang , bukan nama yang panjang karena semua sistem file modern mendukung nama file 255 karakter. Kemungkinan lain adalah nama-nama yang mengandung karakter khusus seperti *:\/?yang diperbolehkan dalam POSIX tetapi tidak dalam Win32 namespace. Jadi masalahnya bukan bahwa Anda memerlukan 8,3 nama DOS tetapi nama yang kompatibel dengan Windows
phuclv

Jawaban:

1

Simpan yang berikut ini ke dalam file Set-DosFileName.ps1

[CmdletBinding(SupportsShouldProcess=$true)]
Param(
    [parameter(Mandatory=$true)]
    [string]$folder,
    [switch]$recurse
)

$fso = New-Object -ComObject Scripting.FileSystemObject

Get-ChildItem -Path $folder -File -Recurse:$recurse | ForEach-Object {

    $shortName = $fso.getfile($_.Fullname).ShortName
    if ($shortName -ne $_.Name)
    {
        $fullShortName = Join-Path $_.Directory -ChildPath $shortName
        Move-Item -LiteralPath $_.Fullname -Destination $fullShortName
    }
}

Untuk menggunakan ini buka jendela PowerShell dan ubah ke direktori tempat Anda menyimpan file:

cd "D:\folder where you saved the script"

kemudian:

.\Set-DosFileName.ps1 -folder "D:\myfiles\Foo Bar" -whatif

Skrip harus menunjukkan cara mengubah nama file Anda.

Untuk memasukkan semua file dalam subdirektori tambahkan -recursesakelar:

.\Set-DosFileName.ps1 -folder "D:\myfiles\Foo Bar" -whatif -recurse

Jika semuanya terlihat baik-baik saja, hapus -whatifsaklar untuk benar-benar mengganti nama file. Saya masih akan menyimpan cadangan file asli kalau-kalau ada masalah.

Saya belum mengujinya dengan sejumlah besar file, perlu diketahui bahwa beberapa nama file mungkin sangat jelek.

Peter Hahndorf
sumber
2

Sejak Windows 10 Versi 1607, batas panjang jalur file dihapus. Untuk mengaktifkan ini , buka regedit.exe, buka HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemdan buat DOWRD 32Bit LongPathsEnableddan ubah nilainya menjadi 1.

masukkan deskripsi gambar di sini

Sekarang masalah 260 char hilang.

magicandre1981
sumber
Saya mencoba ini, tetapi sayangnya saya tidak beruntung. Jika Anda pergi untuk mengganti nama file yang panjang setelah melakukan perubahan di atas itu tidak memberikan opsi di komputer saya. Saya membuat reg_dword untuk LongPathsEnabled dan mengaturnya menjadi 1. Apakah saya lupa melakukan sesuatu? Terima kasih!
Animatoring
ok, aplikasi harus memilih melalui entri manifes. Saya belum memeriksa apakah penjelajah memiliki entri, tapi saya pikir seharusnya
magicandre1981
Terima kasih! Saya perhatikan saya tidak memiliki versi terbaru yang memiliki kemampuan untuk mengaktifkan jalur panjang. Saya pikir itu harus bekerja sekarang.
Animator
mungkin dia memiliki nama dengan karakter khusus seperti ?\/*yang tidak diizinkan di Windows
phuclv