Di jendela DOS, bagaimana saya bisa mendapatkan nama DOS lengkap / nama pendek dari direktori tempat saya berada?
Misalnya, jika saya berada di direktori C:\Program Files\Java\jdk1.6.0_22
, saya ingin menampilkan nama pendeknya C:\PROGRA~1\Java\JDK16~1.0_2
.
Saya tahu menjalankan dir /x
akan memberi saya nama pendek dari file / direktori di direktori saat ini tetapi saya belum dapat menemukan cara untuk menampilkan jalur lengkap dari direktori saat ini dalam format nama pendek. Saya harus bekerja melalui jalur dari root, direktori demi direktori, berjalan dir /x
di masing-masing.
Saya yakin ada cara yang lebih mudah untuk melakukan ini?
windows
command-line
CodeClimber
sumber
sumber
Jawaban:
Ada cara yang lebih sederhana?
sumber
for /d %I in (*) do @echo %~sI
Setiap segmen jalur pendek, bagus. Masalahnya tidak langsung dengan nama yang panjang, atau bahkan spasi meskipun menyakitkan, tetapi yang terburuk adalah ketika karakter internasional hadir yang hanya selang skrip saya mengambil daftar dir ini sebagai masukan.%
tanda - tanda:for %%I in ("C:\folder with spaces") do echo %%~sI
Anda juga dapat memasukkan berikut ini ke dalam jendela CMD:
Di mana
<ParentDirectory>
diganti dengan jalur lengkap dari direktori yang berisi item yang Anda ingin namanya.Meskipun keluarannya tidak sesederhana jawaban Timbo , ia akan mencantumkan semua item dalam direktori yang ditentukan dengan nama sebenarnya dan (jika berbeda) nama pendeknya.
Jika Anda menggunakan,
for %I in (.) do echo %~sI
Anda dapat mengganti.
dengan path lengkap dari file / folder untuk mendapatkan nama pendek dari file / folder tersebut (jika tidak, nama pendek dari folder saat ini akan dikembalikan).Diuji pada Windows 7 x64.
sumber
Dalam skrip batch windows,
%~s1
memperluas parameter jalur ke nama pendek . Buat file batch ini:Saya menelepon milik saya
shortNamePath.cmd
dan menyebutnya seperti ini:Edit: berikut adalah versi yang menggunakan direktori saat ini jika tidak ada parameter yang diberikan:
Disebut tanpa parameter:
sumber
%0
adalah nama jalur skrip batch).Menjadi seorang programmer membuat proyek Winform 10 menit ini. Itu berguna bagi saya. Membuat aplikasi ini menjadi menu konteks untuk file explorer akan menghemat lebih banyak klik.
Form1.cs:
Form1.Designer.cs:
sumber
jalankan
cmd.exe
dan lakukan hal berikut:Kemudian command.com akan muncul dan hanya menampilkan jalur pendek.
sumber
sumber
Jawaban Kimbo sangat cocok untuk file normal.
Untuk nama file MsDos di HardLinks
Tautan keras yang dibuat dengan
mklink /H <link> <target>
tidak akan memiliki nama file pendek MsDos.Jika Anda
dir /X
dan Anda menemukan bahwa nama pendek yang hilang, Anda harus mengharapkan hal-hal berikut:File normal
Pada kasus ini
Saya mendapatkan apa yang saya harapkan
File tautan keras
Pada kasus ini
Saya memiliki jalur MsDos normal tetapi nama file normal.
sumber
mirip dengan jawaban ini tetapi menggunakan sub-rutin
sumber
Jawaban seseorang yang lebih langsung adalah memperbaiki bug.
% SPARK_HOME% \ bin \ spark-class2.cmd; Baris 54
Broken: set RUNNER="%JAVA_HOME%\bin\java"
Windows Style: set "RUNNER=%JAVA_HOME%\bin\java"
Jika tidak, RUNNER berakhir dengan tanda kutip, dan perintah
"%RUNNER%" -Xmx128m ...
berakhir dengan tanda kutip ganda. Hasilnya adalah Program dan File diperlakukan sebagai parameter terpisah.sumber
Terinspirasi oleh jawaban Dr. Scripto
sumber
jika melalui penggunaan file batch:
Anda dapat menggunakan perintah echo untuk memeriksa:
sumber
gunakan tautan ini, secara otomatis akan mengubah jalur apa pun yang Anda berikan ke format apa pun https://pathconverter-pp.azurewebsites.net
sumber