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.