How to specify the current directory in Windows Sh

2019-03-14 23:40发布

问题:

I have the following BAT file which is intended to archive the specified folder, protect it by a password and copy the archive file to my local Dropbox folder.

    "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

I use 7-Zip for archiving.

Is it possible to alter the script in such a way that I can put it in any folder I choose and it does the same - archive the current folder, protect it by a password and copy the archive file to my local Dropbox folder?

Simply said, what is the command for "archive the current directory and any sub-directories"?

回答1:

%CD% is your current directory. Try echo %CD% in a dos prompt to try it out.



回答2:

You can specify "the current directory" simply as ., for example:

"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

It's just a more complicated case of doing something as easy as dir .



回答3:

You can get the current directory path if from the script path you put this line at the top of your script file:

$CurrentDirectory = Split-Path $MyInvocation.InvocationName