parameters - 如何对变量而不是参数使用批处理参数修饰符

标签 parameters batch-file

语法 %~f1 将表示文件名的参数修改为其完全限定路径。有没有办法获得批处理脚本中定义的变量的功能,而不仅仅是参数值?

例如,如果用户提供命令行参数“test.txt”,则以下脚本有效:
echo 限定文件名:%~f1

但是如果我尝试用变量而不是参数来做同样的事情,我怎样才能获得相同的功能?这种尝试是无效的语法并且不起作用:
设置 unqualifiedFilename="test.txt"
echo 限定文件名:%~funqualifiedFilename

最佳答案

我能想到的最简单的方法就是使用 FOR命令。

示例批处理脚本:

@echo off
setlocal
set FileName=test.cmd

for %%i in (%FileName%) do set FullPath=%%~fi

echo Original param was '%FileName%'; full path is '%FullPath%'

示例输出:

原始参数是“test.cmd”;完整路径是 'C:\test.cmd'

关于parameters - 如何对变量而不是参数使用批处理参数修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5228654/

相关文章:

batch-file - 将 FOR 循环通过 GOTO 循环传递到新命令提示符时出现问题

windows - 在 FOR 循环中复制有效,但一直出现错误 "The file cannot be copied onto itself"

windows - 窗口启动时如何运行批处理文件? (登录问题)

python - 避免 GridSearchCV 中的某些参数组合

java - 搜索对象数组列表困惑

linux - 遍历 bash 中的参数

windows - 删除小于特定大小的文件

windows - 如何在 cmd/batch 脚本中仅使用通配符导航到以单个字符命名的子目录?

c# - ASP.NET C# 作用域问题

amazon-web-services - 如何获取cloudformation模板中的参数以使用Amazon Go SDK启动?