Ottieni il file batch da eseguire relativamente alla cartella effettiva, non al collegamento


8

Ho creato alcuni file batch che spostano i file in relazione alla cartella in cui si trova il file batch.

Ho aggiunto la cartella alla mia barra delle applicazioni usando Barre degli strumenti => Nuova barra degli strumenti ..., tuttavia ora quando eseguo i file batch, la posizione iniziale è Documenti (U :), non la posizione effettiva dei file batch. Esiste un modo per ottenerlo per utilizzare il percorso effettivo?

Risposte:


10

Inserisci quanto segue nella parte superiore del file batch:

CD /D %~dp0

Spiegazione:

  • L' /Dopzione indica CDdi modificare l'unità corrente e la directory corrente per un'unità.
  • %0 è il nome del file batch
  • Il ~dice che vogliamo utilizzare alcuni modificatori
  • d si espande per guidare la lettera.
  • p si espande in un percorso.

Così %~dp0è la directory in cui risiede il file batch.


Il CD funziona perfettamente, ma non cambia la designazione dell'unità, quindi lo script tenta ancora di essere eseguito su U: \
ck.

Ho aggiunto% ~ d0 per cambiare unità seguendo la tua spiegazione.
ck.

@ck - Hai dimenticato le unità, scusa. Probabilmente è più facile da usare CD /D. Ho modificato la risposta per riflettere questo.
Dave Webb,

possiamo usare PUSHDinvece diCD /D
Tuan Anh Hoang-Vu il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.