batch-file - 在批处理 : Read only the filename from a variable with path and filename

标签 batch-file dos filenames

我目前正在寻找一种批量获取变量并仅解析文件名的方法。

例如,我将来自另一个应用程序的 -s 参数传递给我的批处理文件,该参数随后被设置为我的源变量。源文件变量通常包含如下内容:C:\Program Files\myapp\Instance.1\Data\filetomove.ext。

我假设从变量的末尾读取直到第一个“\”并将结果设置为新的变量文件名,但我无法成功使用“for/f”命令。

任何帮助将非常感激!

更新:只有标准 XP 或 Windows 2000/2003 可用...(不能假设已安装资源包)。

最佳答案

如果它作为脚本的参数出现,即 %1、%2 等,您可以将文件名和扩展名提取到这样的变量中:

set FILENAME=%~nxN

其中 N 是参数的索引。例如,此脚本将只回显第一个参数的文件名:
@echo off
set FILENAME=%~nx1
echo %FILENAME%

关于batch-file - 在批处理 : Read only the filename from a variable with path and filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454670/

相关文章:

php - 制作一个以当前日期 d :m:Y 命名的文件

windows - 在 for 循环中初始化的批处理文件变量

powershell - bat 文件为 win server 2012 安装 .net 3.5 框架

Android - 在没有开发人员选项的情况下使用 ADB

DOS批处理命令一次处理1个文件

php - 使用唯一文件名通过 php 上传图像

python - 打开新的 cmd 窗口后,如何从 python 批处理文件在终端中推送命令?

c - 为什么我们在处理 TSR 时需要远指针?

assembly - 从 DOS 程序进入保护模式

filenames - 在 Rebol 3 GUI 中请求文件的正确方法(Saphir 版本)