Windows komut isteminde yolu geçerli konumdan varsayılan dizine değiştirme komutu var mı?


2

Geçerli dizini varsayılan dizine değiştirme komutu var mı? (Burada varsayılan dizini kalıcı olarak değiştirmeyi istemiyorum!)

Örneğin, geçerli dizin ".. \ xyz" ve varsayılan komut istemi dizini D: \ Abc ise, doğrudan gezinmenin bir yolu var mı? D: \ Abc (vermeden> cd D: \ Abc)?


1
Burada harika bir cevap var .. superuser.com/a/699052/33955
Anindya Chatterjee

Yanıtlar:


3

Bunu cdyapmak için yerleşik bir seçenek yok, ancak kesinlikle .cmdbunu yapan bir komut dosyası oluşturabilirsiniz . Örneğin, bunu home.cmdaramanızın bir yerindeki bir dosyaya koyabilir PATHve D:\Abcsadece şunu yazarak gidebilirsiniz home:

@ echo off
cd /D D:\Abc

Veya call hometoplu iş dosyalarında;)
Joey

Güvenlik riskini gösterebilir miyim? - Toplu iş dosyanıza kötü amaçlı kod ekleyebilirim veya PATH'de daha önce benzer bir dosyaya sahip olabilirim ve bir fikriniz olmaz. Toplu iş dosyalarının yolda olması güvenlik açısından çok yanlıştır.
Dheeraj Bhaskar

Senaryolarda özel bir şey yok. PATH'nizde daha önce bir .exe dosyasında kötü amaçlı kodla aynı sorunu yaşayabilir ve ayrıca bir fikriniz olmazdı.
Nicole Hamilton

3

Yerleşik bir komut yok, fakat neden kendi komutunuzu yaratmıyorsunuz, örneğin dd (Varsayılan Dizin) ? Aşağıdaki komutu herhangi bir yerde bir toplu iş / komut dosyası dosyasına kaydedin : C: \ Macros.bat veya C: \ Macros.cmd :

@doskey dd=cd /d D:\Abc

Şimdi kayıt defterinde ( Regedit.exe ) gidin:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

AutoRun adlı bir dize değeri (REG_SZ) veya genişletilebilir dize değeri (REG_EXPAND_SZ) oluşturun ve bu değeri C: \ Macros.bat (veya .cmd olabilir) olarak ayarlayın.

Aynı AutoRun değeri aşağıdakilere de eklenebilir:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor

HKLM AutoRun değerinde belirtilen tüm komutlar HKCU karşılığı olandan önce çalışacaktır. Daha cmd /?fazlasını gör .

Şimdi bir cmd.exe örneği / penceresi açtığınızda, Macros.bat (veya .cmd) otomatik olarak yürütülür ve bunun sonucunda DOSKey komutu diğer adı (yeniden) oluşturulur. Böylece , belirtilen yeni dizine atlamak için dd komutunu basitçe yazabilirsiniz .


2
cd %HOMEPATH%

Nicole bahseder gibi bir toplu iş dosyası oluşturmak muhtemelen daha kolaydır.


2
bilgisayarımdaki cmd.exe varsayılan olarak, bazı nedenlerden dolayı% HOMEPATH% 'nin kullanıcı profili olmasına bakılmaksızın c: \ windows \ system32' ye varsayılandır.
barlop

@barlop cmd'yi kısayoldan mı, doğrudan dosyadan mı yoksa çalıştır iletişim kutusundan mı çalıştırıyorsunuz?
David Ruhmann,

1
@DavidRuhmann start..run..cmd <ENTER>, xp'de. Ama fark yaratan şeyi bulmuş olabilirim. Kayıt defterinde HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor Autorun adlı bir anahtara sahip ve değeri yok. Bunu dene. Ve sizinkilerin c: \ windows \ system32'ye gidip gitmediğine bakın. Anahtarınız hiç olmayabilir. Örneğin, anahtarı autorunn olarak yeniden adlandırırsam (hiç şüphesiz autorun anahtarı gibi), cmd istemi% homepath% 'e gider. Anahtar, değeri olmayan Autorun olarak adlandırılırsa, c: \ windows \ system32
barlop

1
İlgili bir notta. Windows 7'de, yönetici ayrıcalıklarına sahip bir cmd çalıştırırsanız, c: \ windows \ system32'ye gider, bununla birlikte, benim hesabımdaki yönetici ile ilgili olup olmadığını henüz kontrol etmedim; . ama x7'den farklı olarak, win7'de duyduğum gibi, bundan dolayı şüpheliyim. runas yöneticisi, (ki benim durumumda) idari ayrıcalıklara sahip olan aynı profile bağlı kalıyor ve bunu kullanmak için sadece süreci yükseltiyor.
barlop

2

Komut satırınız başladıysa D:\Abcve yalnızca ..\xyzbirkaç komut için girmeniz gerekiyorsa , pushdve popdkomutlarını kullanın. İşte toplu komut dosyası örneği:

@echo off
echo.Im at this directory: %CD%
pushd "..\xyz"
echo.Im now at this directory: %CD%
popd
echo.Im back at this directory: %CD%
pause

Aksi halde cd, geçerli dizini değiştirmek için komutu kullanmanız gerekecektir . Bu sadece toplu komut dosyası için çalışır.

@echo off
echo.Im at this directory: %CD%
cd "..\xyz"
echo.Im now at this directory: %CD%
cd "%~dp0"
echo.Im back at this directory: %CD%
pause

"% ~ Dp0" ifadesinin sizi toplu komut dosyasının başladığı orijinal dizine geri götüreceğini unutmayın.


2
A dizininde bulunan, ancak B dizininden yürütülen bir toplu iş dosyasında %~dp0, başlangıç ​​dizinine değil, A dizinine işaret edeceğini unutmayın.
Marcks Thomas,

@MarcksThomas Bu doğru, cevabımdaki son nota ile bu noktaya değinmeye çalıştım, sanırım yeterince net değildi.
David Ruhmann,

1

Bu, herhangi bir Windows makinesinde "home" komut aracını oluşturmak için kullanılan evrensel bir komuttur.

Basın WinRve aşağıdaki komutu girin:

CMD /C ((SETLOCAL ENABLEDELAYEDEXPANSION &ECHO ^@ECHO OFF &ECHO ECHO Changing to "home" directory... 1^>CON&ECHO CD /D %%USERPROFILE%%)1>"%SYSTEMROOT%\home.cmd")

1

Oyuna geç kaldığımı biliyorum ama bu soruya rastlayan herhangi biri için (benim gibi) çözümümü yayınlamak istiyorum. Başka kimsenin bahsetmediği basit bir nasıl yapılır, IMO daha kolay ve doğrudan. Göz atın: Spiceworks - Varsayılan Dizini Değiştir

  1. Komut İstemi'nin Konumunu açın.

    Başlat ekranında / menüde "cmd" yazın, sağ tıklayın ve "Dosya Konumunu Aç" ı seçin.

  2. Komut İstemi Özellikleri'ni açın ve "Başlat" özelliğini değiştirin.

    "Komut İstemi" simgesine sağ tıklayın, "Özellikler" seçeneğini seçin ve "Başlat" özelliğini istediğiniz şekilde düzenleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.