Saya perlu menggunakan nama jalur yang diperpendek untuk aplikasi yang saya gunakan. Misalnya saya perlu C:\PROGRA~1\
sebagai lawan C:\Program Files
. Program tidak dapat menangani spasi dan tidak akan menerima jalur yang dikutip (misalnya "C:\Program Files"
).
Jika itu membantu, saya menggunakan Windows 7. Saya bisa mendapatkan akses ke versi apa pun sejak XP, jika perlu.
/s
Switch ini melakukan rekursi subfolderBuat file kelelawar di beberapa direktori yang nyaman maka Anda dapat menyalin + menempel jalur pendek dari jalur itu.
Anda bisa menjalankan
command.com
dan terus melakukancd
perintah ke direktori Anda saat ini juga.Di skrip batch Windows,
%~s1
perluas parameter path ke nama pendek . Buat file batch ini:Saya menelepon milik saya
shortNamePath.cmd
dan menyebutnya seperti ini:Berikut adalah versi yang menggunakan direktori saat ini jika tidak ada parameter yang diberikan:
Disebut tanpa parameter:
Menggunakan
SET
dan variabel bernamaWindows Command Prompt memiliki beberapa konvensi untuk menangani variabel dengan spasi dalam nilainya yang agak sulit dipelajari dan dipahami, terutama jika Anda memiliki latar belakang Unix. Anda dapat melakukan
( tanpa tanda kutip ), atau
(perhatikan penempatan kutipan yang tidak intuitif); kemudian
sumber
Ini satu liner :
Kerusakan :
cmd /c
- Memulai instance baru dari interpreter perintah Windows, melakukan perintah yang ditentukan oleh string dan kemudian berakhirfor %%parameter in (set) do
command - Menjalankan perintah beberapa kali secara kondisional.echo
- Menampilkan pesan di layar.@
simbol sama dengan yangECHO OFF
diterapkan pada baris saat ini saja.%~s
- Jalur yang diperluas hanya berisi nama pendek.Sumber :
sumber
cmd /c
? Jika Anda berada di jendela Command Prompt, Anda bisa mengetikkanfor %A in ("C:\Program Files") do @echo %~sA
perintah, dan jika Anda mengetiknya di kotak dialog “Run”, hasilnya menghilang sebelum Anda bisa membacanya.cmd /c
waktu lari daricmd
; Anda memang membutuhkannya dari PowerShell , tetapi kemudian Anda juga perlu'...'
-lose token setelah/c
:cmd /c 'for %f in ("C:\Program Files") do @echo %~sf'
"Nama pendek" sebenarnya adalah konvensi penamaan DOS 8.3 yang lama, jadi semua direktori akan menjadi 6 huruf pertama diikuti dengan
~1
asumsi hanya ada satu nama yang cocok, misalnya:di sini satu-satunya pengecualian
sumber
Program Files
danProgram Files (x86)
yangPROGRA~1
dan yang mana satuPROGRA~2
. Jawaban Paulus memecahkan masalah itu....~4
) dimulai dengan apa yang tampak seperti hashing, misalnya diABxxxx~1
mana x adalah heksadesimal - yang tidak mudah dibaca.ABCDEFGH-CAT
, itu akan mendapat nama pendekABCDEF~1
. Jika saya kemudian membuatABCDEFGH-DOG
, itu mendapat nama pendekABCDEF~2
. Jika saya kemudian hapusABCDEFGH-CAT
,ABCDEFGH-DOG
, masih memiliki nama pendekABCDEF~2
. Tidak ada cara untuk mengetahui hanya dengan melihat nama-nama yang panjang.~1
. Lihat aturan yang digunakan Windows untuk menghasilkan nama pendek . Dan Anda juga dapat mengatur nama pendek secara manualfsutil
, sehingga kedua nama tersebut tidak memiliki hubungan apa pun. Jangankan tautan keras atau lunakSaya menemukan cara yang sangat berguna untuk memecahkan pathname singkat dari direktori saat ini (atau apa pun) jika Anda telah menginstal Powershell.
Cukup buka PowerShell di dir saat ini
di cmd windows ketik PowerShell
jika Anda memiliki folder terbuka di gui Anda dapat mengetikkan cmd.exe atau powershell.exe langsung di bilah alamat folder.
Kemudian berikan perintah
Asal informasi: [ https://gallery.technet.microsoft.com/scriptcenter/Get-ShortName-90a49303]
sumber
Mirip dengan jawaban Ivan Schwartz , Anda dapat mengganti "C: \ Program Files" dengan
%cd%
untuk mendapatkan dir saat ini:sumber
Atau, Anda bisa menggunakan alat kecil yang luar biasa ini yang disebut PathCopyCopy
Dalam beberapa klik, Anda bisa mendapatkan jalur panjang dan pendek dari semua folder dari menu kontekstual, misalnya:
Selesai. Ini akan disalin ke clipboard Anda.
pratinjau
sumber
Saya telah menginstal modul simpul dengan menjalankan
npm install
pada boilerplate. Saat mencoba menghapus folder-folder itu, windows tidak memungkinkan kami untuk menghapusnya karena path terlalu panjang untuk dapat ditangani.Setelah beberapa penelitian dangkal, saya pikir itu akan benar potongan kode saya sendiri untuk mengganti nama folder dari root ke daun sehingga akan membuang pengecualian pelanggaran untuk upaya ini juga.
Ini bekerja untuk saya. Berikut ini adalah kode untuk proyek C #.
sumber
Ini adalah cara termudah yang saya gunakan ketika berurusan dengan file dengan spasi dan ini dapat diakses dari file explorer juga memiliki semua hak akses yang sama.
sumber
Cukup ganti spasi dengan
Begitulah cara "diterjemahkan", dan spasi masuk ke% 20.
Jika Anda benar-benar membutuhkan banyak, cukup buka browser Anda dan ketik sesuatu seperti
sumber
if exist C:\Program%20Files\ (echo exists)