Batch file 如何使用批处理获取文件名?
这个问题在网上被问了很多次,所以我提前为这个问题道歉,但不幸的是我无法运行我的代码 背景信息:Batch file 如何使用批处理获取文件名?,batch-file,filenames,Batch File,Filenames,这个问题在网上被问了很多次,所以我提前为这个问题道歉,但不幸的是我无法运行我的代码 背景信息: :fileprocessing pause FOR /R %F in ("K:\path\*RootFileName*.txt") DO ( echo %~nF pause ) 每个文件都有一个带有日期的前缀(或后缀)——因此在“RootFileName”之前和之后都有通配符 我觉得上面的代码应该给我文件名(%~nF)。。。但是一旦我的代码到达下面的部分,它就会终止批处理过程
:fileprocessing
pause
FOR /R %F in ("K:\path\*RootFileName*.txt") DO (
echo %~nF
pause
)
每个文件都有一个带有日期的前缀(或后缀)——因此在“RootFileName”之前和之后都有通配符
我觉得上面的代码应该给我文件名(%~nF)。。。但是一旦我的代码到达下面的部分,它就会终止批处理过程
我的代码:
:fileprocessing
pause
FOR /R %F in ("K:\path\*RootFileName*.txt") DO (
echo %~nF
pause
)
注意:在进行故障排除时,上面添加了暂停,以准确查找批处理终止的位置
我也尝试过:
:fileprocessing
pause
FOR /R "K:\path\" %F in (*RootFileName*.txt) DO (
echo %~nF
pause
)
我的问题:
:fileprocessing
pause
FOR /R %F in ("K:\path\*RootFileName*.txt") DO (
echo %~nF
pause
)
当我的批处理到达上面的代码部分时,它就会终止(即,我从未看到我的echo文件名&第二个“暂停”步骤从未触发)
谢谢你的帮助 在批处理文件中引用元变量%F
时使用double%,因此
FOR /R "K:\path" %%F in (*RootFileName*.txt) DO (
echo %%~nF
在批处理文件中引用元变量%F
时使用双百分比,因此
FOR /R "K:\path" %%F in (*RootFileName*.txt) DO (
echo %%~nF
扩展Magoo的答案,您似乎需要使用第二种形式:
:fileprocessing
pause
FOR /R "K:\path\" %%F IN (*RootFileName*.txt) DO (
ECHO %%~nF
pause
)
扩展Magoo的答案,您似乎需要使用第二种形式:
:fileprocessing
pause
FOR /R "K:\path\" %%F IN (*RootFileName*.txt) DO (
ECHO %%~nF
pause
)
这就停止了解雇问题。非常感谢。但是,现在它跳过了文件名echo并直接进入第二个暂停?实际上,它似乎没有运行任何DO()命令,而是跳过了我在程序退出前设置的另一个故障排除暂停。关于它为什么跳过DO()?的任何建议对我来说都非常有效,使用'for/R“M:\seattle“%%F in(d23)DO(echo%%~nF pause)[newlines as you have]-我的系统尽职尽责地显示了文件名并暂停了。我是个白痴,仍然在使用最新版本的代码(上面的第一组)@zb226帮助我认识到我做错了什么。非常感谢。这就停止了解雇问题。非常感谢。但是,现在它跳过了文件名echo并直接进入第二个暂停?实际上,它似乎没有运行任何DO()命令,而是跳过了我在程序退出前设置的另一个故障排除暂停。关于它为什么跳过DO()?的任何建议对我来说都非常有效,使用'for/R“M:\seattle“%%F in(d23)DO(echo%%~nF pause)[newlines as you have]-我的系统尽职尽责地显示了文件名并暂停了。我是个白痴,仍然在使用最新版本的代码(上面的第一组)@zb226帮助我认识到我做错了什么。非常感谢。打开命令提示窗口,输入<代码>以获取/?或<代码>帮助以获取,然后执行并返回。现在,您将获得显示的命令帮助,您应该仔细阅读,最好是所有页面,而不仅仅是第一个页面。打开命令提示窗口,输入
以获取/?
或帮助以获取
,然后执行并返回。现在您可以看到命令的帮助,您应该仔细阅读,最好是所有页面,而不仅仅是第一页。