2016-06-03 1 views
0

Ich möchte also einen Stapel erstellen, der seinen aktuellen Speicherort (Pfad) in eine Datei schreibt, die sich in einem anderen Verzeichnis (C :) befindet.Speichere das aktuelle Verzeichnis und verwende es später

Ich möchte nicht, dass es fest codiert ist, also habe ich viele Ansätze in diesen Tagen versucht, aber nichts hat funktioniert.Ich dachte, das Speichern des CD-Befehls in einer Variablen könnte das Problem lösen. Hier ist einer meiner Versuche:

setlocal enabledelayedexpansion 
for /f "delims=" %%i in ('cd') do set installation_path=%%i 
(
    echo [General] 
    echo bin: %installation_path%\bin 
    echo sys: %installation_path%\sys 
    echo. 
    ::etc 
)>"C:\file_where_I_want_to_write" 

Und anstatt zu zeigen, in meinem "file_where_I_want_to_write" my batch das Verzeichnis es zeigt

C: \ WINDOWS \ system32

Danke für die Hilfe !

+1

cd gibt Ihnen das aktuelle Verzeichnis, das nicht unbedingt das gleiche ist wie das Verzeichnis, das die Batch-Datei enthält. Wie starten Sie Ihre Batch-Datei? –

+0

@KlitosKyriacou mit Echo aus – user3629077

+0

Ich meine, wie machst du es? Durch einen Doppelklick auf die Datei im Explorer? Durch Eingabe seines Namens an der Eingabeaufforderung? Wenn es das letztere ist, CD an sein Verzeichnis, bevor Sie seinen Namen eingeben? –

Antwort

0

Wenn ich Ihr Ziel richtig verstehe, müssen Sie nichts ausführen. %cd% liefert Ihnen das aktuelle Verzeichnis. %~dp0 gibt Ihnen das Verzeichnis mit der Batch-Datei.

echo %cd% > file_where_I_want_to_write 

Aktualisiert basierend auf Kommentar Frage. Wenn Sie %~dp0 nicht direkt verwenden möchten, weisen Sie etwas anderem zu. Verwenden Sie setlocal und endlocal, um die Zuordnung zu Ihrem Stapel Skript zu beschränken.

@echo off 
setlocal 
set batchdir=%~dp0 
echo [General] > file_where_I_want_to_write 
echo bin: %batchdir%bin >> file_where_I_want_to_write 
echo sys: %batchdir%sys >> file_where_I_want_to_write 
echo. >> file_where_I_want_to_write 
endlocal 

Beachten Sie, dass %~dp0 Backslash enthält.

+0

Ok, wie soll ich dann den Inhalt meines Echos ändern? Ich muss irgendwie das Verzeichnis der Fledermaus speichern. – user3629077

+0

Editiertes Original. Hoffentlich hilft das. –

+0

Gearbeitet! Danke Kevin, deine Hilfe wird sehr geschätzt. – user3629077

0

Befehl CD eingegebener aktueller Pfad. Sie können Umleitung> (Schreiben) oder >> (Anhängen) verwenden. Verwenden Sie:

cd > c:\your_path\file_where_I_want_to_write