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