我有一个批处理文件,它以文件路径为参数
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 * 是你要取的字数