Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用cmd将文本文件的名称设置为变量_Batch File_Cmd - Fatal编程技术网

Batch file 使用cmd将文本文件的名称设置为变量

Batch file 使用cmd将文本文件的名称设置为变量,batch-file,cmd,Batch File,Cmd,我有目录C:\Test\NewName.txt,我只想取名称NewName并将其放入名为X的变量中。另一个问题是我不知道.txt文件的名称。我只知道它将只有一个.txt文件存储在测试文件夹中。比如: set X=C:\Test\NewName.txt echo %X% 但它不起作用…如果您确定,只有一个.txt文件: 如果有多个,它将按字母顺序选择最后一个 %%~fa是带驱动器、路径、名称和扩展名的完全限定文件名。如果您需要其他服务,请参阅/ 注意:这是在批处理文件中使用的语法。要在命令行上使

我有目录C:\Test\NewName.txt,我只想取名称NewName并将其放入名为X的变量中。另一个问题是我不知道.txt文件的名称。我只知道它将只有一个.txt文件存储在测试文件夹中。比如:

set X=C:\Test\NewName.txt
echo %X%

但它不起作用…

如果您确定,只有一个.txt文件:

如果有多个,它将按字母顺序选择最后一个

%%~fa是带驱动器、路径、名称和扩展名的完全限定文件名。如果您需要其他服务,请参阅/


注意:这是在批处理文件中使用的语法。要在命令行上使用它,请将每个%%a替换为%a

这是一个非常好的选项,理论上应该可以工作,但当我设置它时,它不会响应任何内容。在cmd中显示%a。。。只有1%的符号。可能是我应该在特定的目录下用CD命令或设置在某个地方?CMD仅在底部显示,ECHO处于打开状态。
for %%a in (C:\Test\*.txt) do set x=%%~fa
echo %x%