2

我有一个批处理文件,它以文件路径为参数

set filePath = %1

现在,假设文件路径是:C:\Temp\Folder,我想Folder在一个新变量中设置。我怎样才能做到这一点?

我在网上搜索,所有解决方案都是这样的:

for %%A in (%filePath%) do set last=%%A

但这仅适用于带空格的字符串。

4

3 回答 3

3

您可以用空格替换斜杠,然后将其解析出来:

set filePath=%1
set filePath=%filePath:\= %
for %%A in (%filePath%) do set last=%%A
于 2012-07-30T17:35:40.963 回答
3

您可以Folder通过C:\Temp\Folder~n修饰符应用于%1

SET "last=%~n1"

如果最后一项可能包含.,请~nx改用:

SET "last=%~nx1"

修饰符应用于位置参数或循环变量,并从该~n参数或变量指定的路径中提取姓氏。修饰符提取姓氏的~x扩展名(从 last 开始的部分.)。因此,~nx提取(姓氏)名称和扩展名。

于 2012-07-30T17:53:14.953 回答
0

你可以试试

for /F "tokens=4*" %%G IN (Data.txt) DO (
set value1=%%G
echo %value1%
)

4 * 是你要取的字数

于 2020-07-17T12:20:14.333 回答