2014-09-10 76 views
0

我正在寻找一种基于通配符为变量指定文件名的方法。这是我到目前为止:CMD将变量分配给文件夹中的文件名

cd Y:\FileLocation\FileName1.txt 

For %%a Y:\FileLocation\FileName1*.txt 
Set Claims= %~nI 

不确定您是否可以指向一个文件并从该特定文件中获取属性并分配文件名。或者我可以如何去做这件事。我确实需要使用通配符,因为文件名可以有日期戳,但是文件名的根将始终保持不变。

+0

到目前为止您的代码无法正常工作? – 2014-09-10 16:57:12

+0

%% a此时意外, 和变量Claims =%〜nI不是文件名,因为我在找。 – 2014-09-10 17:22:49

+0

尝试在命令行键入'help for'。 – ths 2014-09-10 22:07:02

回答

1

对我来说是什么工作原理是这样的语法:

For %%a IN (D*.lnk) DO Set Claims=%%~na 

所以更改代码以匹配工作,它会读...

cd /d "Y:\FileLocation" 
For %%a IN ("Y:\FileLocation\FileName1*.txt") DO Set "Claims=%%~na" 

改变我做了:
1 )添加了关键字“IN”
2)在文件规范周围添加了括号
3)添加了关键字“DO”并删除了新行
4)将您的“%〜nI”更改为“%%〜na”

+0

只是评论说在这种情况下不需要'cd'命令。 – foxidrive 2014-09-11 04:22:29

+0

当我尝试这个时,我得到错误:%% a在这个时候是意外的。 另外,当我尝试调用变量来测试它是否工作时,以下工作将会如何工作:回声声明?或者我需要将其称为%Claims% – 2014-09-12 19:10:30

+0

您可能得到了“此时考虑的因素”,因为您是从命令提示符执行代码,而不是从.bat文件中执行代码。要从命令提示符执行,请在两个地方(“%%”)的每一个地方删除两个“%”中的一个,以使行显示如下: 对于%a IN(“Y:\ FileLocation \ FileName1 * txt“)DO设置”Claims =%〜na“ – 2014-09-13 09:34:54

相关问题