获取当前文件夹名称

时间:2017-06-20 08:41:00

标签: batch-file

我有一个简单的批处理文件,用于存档tar / gzip格式的文件。我已将批处理文件放在system32中,以便我可以从任何地方访问它。

我使用" shift +右键单击"打开命令窗口。在特定文件夹中,我希望存档文件夹的内容并输入批处理文件的名称(targz.bat)。批处理文件执行归档/压缩。

问题是我使用绝对路径。我需要一种方法来获取当前目录和当前文件夹的名称。我可以使用%cd%获取当前目录,但如何获取文件夹名称?

例如:

set currentdir=%cd%         "C:\xampp\htdocs\wordpress"
set currentfoldername=      should be just "wordpress"

实际代码:

@echo off
cd "C:\Program Files\7-Zip"
7z a -ttar "C:\xampp\htdocs\wordpress\archive.tar" "C:\xampp\htdocs\wordpress\*"
7z a -tgzip "C:\xampp\htdocs\wordpress\archive.tar.gz" "C:\xampp\htdocs\wordpress\archive.tar"
del "C:\xampp\htdocs\wordpress\archive.tar"
exit

所需:

@echo off
set currentdir=%cd%
set currentfoldername=
cd "C:\Program Files\7-Zip"
7z a -ttar "%currentdir%\%currentfoldername%.tar" "%currentdir%\*"
7z a -tgzip "%currentdir%\%currentfoldername%.tar.gz" "%currentdir%\%currentfoldername%.tar"
del "%currentdir%\%currentfoldername%.tar"
exit

1 个答案:

答案 0 :(得分:1)

使用~n修饰符可以轻松获取路径的最后一个元素:

for %%a in (%cd%) do set "currentfoldername=%~na"