如何将当前目录的最后两个文件夹存储在.bat文件的变量中

时间:2019-01-11 20:04:02

标签: batch-file

我正在尝试使用.bat文件进行FTP。现在,我要从的位置将部分匹配主驱动器上的位置。我正在从该位置进行mget *

示例: \...\...\Folder1\Folder2

现在在我的系统上,我具有文件夹位置\....\....\Folder1\Folder2

我想匹配那些脚本。现在我正在尝试使用

SET MYDIR=%cd%

set MYDIR1=%MYDIR:~41,7%

for %%f in (%MYDIR1%) do set myfolder=%%~nxf
echo %myfolder%

这使我得到了最后一个文件夹,(文件夹2)。但是文件夹将有所不同,我将.bat文件放在不同的文件夹中以执行相同的操作,因此无论文件夹名称的大小如何,我都希望它对应于不同的目录,所以我不能使用硬编码的下标。因此,我以为可能要获取folder2的名称,然后从字符串中将其删除,但是我无法从字符串中删除具有folder2文本的变量。我可以从文本中删除特定的字符串,但是从一个文件夹到下一个文件夹都不知道该字符串是什么。

建议?我基本上希望将最后两个文件夹作为变量,以便可以将它们传递到将从服务器提取的脚本中。

1 个答案:

答案 0 :(得分:0)

您可以使用FOR命令获取当前目录的子目录和父目录名称。

for %%G in ("%cd%\.") do set child=%%~nxG
for %%G in ("%cd%\..") do set parent=%%~nxG