我有一个批处理文件,它将文件路径作为参数
set filePath = %1
现在,假设文件路径为:C:\Temp\Folder
,我想在新变量中设置Folder
。我怎样才能做到这一点?
我在网上搜索,所有解决方案都是这样的:
for %%A in (%filePath%) do set last=%%A
但这仅适用于带空格的字符串。
答案 0 :(得分:3)
您可以用空格替换斜杠,然后解析出来:
set filePath=%1
set filePath=%filePath:\= %
for %%A in (%filePath%) do set last=%%A
答案 1 :(得分:3)
您可以通过将Folder
修饰符应用于C:\Temp\Folder
来从~n
中提取%1
:
SET "last=%~n1"
如果最后一项可能包含.
,请改为使用~nx
:
SET "last=%~nx1"
~n
修饰符适用于位置参数或循环变量,并从该参数或变量指定的路径中提取姓氏。 ~x
修饰符提取姓氏的扩展名(从上一个.
开始的部分)。因此,~nx
提取(最后)名称和扩展名。
答案 2 :(得分:0)
您可以尝试
for /F "tokens=4*" %%G IN (Data.txt) DO (
set value1=%%G
echo %value1%
)
4 *是您要使用的单词的编号