Как указать текущий каталог в Windows Shell? - PullRequest
16 голосов
/ 12 июля 2011

У меня есть следующий BAT-файл, предназначенный для архивирования указанной папки, защиты ее паролем и копирования архивного файла в мою локальную папку Dropbox.

    "C:\Program Files\7-Zip\7z.exe" a -mx9 archive.7z "G:\This is a test\directory\with subdirectories\" -psecret -mhe=on

    xcopy "G:\This is a test\directory\with subdirectories\archive.7z" "G:\My Documents\My Dropbox\" /c /d /s /e /k /y

Я использую 7-Zip для архивирования.

Можно ли изменить сценарий таким образом, чтобы я мог поместить его в любую папку, которую я выбрал, и она делает то же самое - заархивировать текущую папку, защитить ее паролем и скопировать файл архива вмоя локальная папка Dropbox?

Проще говоря, что это за команда "заархивировать текущий каталог и все подкаталоги"?

Ответы [ 3 ]

42 голосов
/ 12 июля 2011

%CD% - ваш текущий каталог. Попробуйте echo %CD% в командной строке, чтобы попробовать.

3 голосов
/ 12 июля 2011

Вы можете указать «текущий каталог» просто как ., например:

"C:\Program Files\7-Zip\7z.exe" a -mx9 archive.7z . -psecret -mhe=on
xcopy archive.7z "G:\My Documents\My Dropbox\" /c /d /s /e /k /y

Это просто более сложный случай сделать что-то столь же легкое, как dir .

0 голосов
/ 12 июля 2011

Вы можете получить текущий путь к каталогу, если из пути к сценарию вы поместите эту строку вверху файла сценария:

$CurrentDirectory = Split-Path $MyInvocation.InvocationName
...