Ich versuche, ein einfaches Batch-Skript zu schreiben, das einige Dateien aus dem %userprofile%\Documents
Verzeichnis kopiert . Ich teste das Skript auf meinem Computer, aber nach einigen Fehlern wurde mir klar, dass ich die Daten meines Benutzers auf eine separate Partition verschoben habe . Daher %userprofile%\Documents
ist leer und (offensichtlich) nichts wird kopiert.
Ich habe bereits andere Umgebungsvariablen wie %homedrive%
und ausprobiert %homepath%
, aber sie zeigen immer noch auf den StandardC:\...
Gibt es eine Möglichkeit, das tatsächliche Laufwerk herauszufinden, das für die Benutzerdaten verwendet wird?
Ich benutze Windows 10.
Vielen Dank!
BEARBEITEN
Wie von Ƭᴇcʜιᴇ007 hervorgehoben, habe ich die Daten des Benutzers nicht auf eine andere Partition verschoben, sondern nur die "Haupt" -Ordner (Dokumente, Videos, ...) in einige entsprechende Ordner auf einer anderen Partition verschoben: Klicken Sie mit der rechten Maustaste auf (z ) Dokumente, Eigenschaften, Pfad.
Wie kann ich den Pfad eines Dokumentordners ermitteln, der auf diese Weise verschoben wurde?
quelle
Antworten:
Leider gibt es keine einfache Umgebungsvariable, die Sie anhand eines Stapelskripts überprüfen können, wenn Sie diese vom Standardpfad relativ zu Ihrem Profil umgeleitet haben. Die vollständige Liste der Umgebungsvariablen (einschließlich einiger undokumentierter) finden Sie hier:
Beachten Sie außerdem, dass Sie mit der Ordnerumleitung diese sogar auf eine Netzwerkfreigabe verschieben können. Es muss kein "Laufwerk" geben, das Sie alle verwenden können. Es könnte nur ein UNC-Pfad sein.
Die gute Nachricht ist, dass die gewünschten Informationen in der Registrierung an folgendem Speicherort verfügbar sind:
Es gibt eine ganze Reihe von Ordnern, die Sie in diesem
User Shell Folders
Schlüssel verschieben können. Das Lesen des Ordners Eigene Dateien hier mit Windows Batch sieht jedoch folgendermaßen aus:Auf meinem Computer erzeugt dies die folgende Ausgabe, die für Sie mehr oder weniger nützlich sein kann, je nachdem, was Sie benötigen und wie gut Sie mit Windows Batch-Skripten umgehen können:
Sie können auch vbscript ausprobieren:
oder Powershell:
Dies ist möglicherweise auch über Bash unter Windows verfügbar (wirklich!), Aber ich habe noch nicht gesehen, wie dies auf eine Weise funktioniert, die durchweg genau ist.
quelle
Angenommen, Sie haben Schreibzugriff auf den aktuellen Ordner oder einen bekannten Speicherort auf dem Computer. Sie können PowerShell verwenden!
Die
Environment.GetFolderPath
Funktion kann den Dateisystempfad bekannter Speicherorte abrufen , einschließlich des Ordners "Dokumente". Dieser PowerShell-Befehl gibt den Dokumentpfad aus:Es kann mit dem
Out-File
Cmdlet in eine Datei geschrieben werden. Der Umleitungsoperator>
funktioniert hier nicht wirklich, da er eine Unicode-Textdatei mit einer Stückliste erstellt, mit der im Stapelverarbeiter nur schwer gearbeitet werden kann.Diese Datei kann mit in eine Stapelvariable eingelesen werden
set /p
. Wenn wir alles zusammenfügen, erhalten wir dieses Batch-Skriptfragment:Der Pfad zum Ordner "Dokumente" des Benutzers kann jetzt als ausgedrückt werden
%DOCSPATH%
.quelle
Ich habe die zuverlässige Antwort. Kombination von Powershell, die die Antwort auf dos zurückgibt
quelle
$
in einem CMD-Variablennamen verwenden können. Aber Sie wissen, dass es eine ungewöhnliche Verwendung ist, oder?Nun, es ist ziemlich einfach :)
Der Speicherort des Desktop-Ordners ist hier aufgeführt:
oder noch einfacher in PowerShell
quelle