我目前正在尝试使用批处理来获取特定的文件名,然后将其放入变量中,因为文件名可能会更改,但“客户端”或“ mui”部分不会更改。
这两行是我首先尝试的。使用dir搜索路径,使用/ b仅获取名称,然后使用“ client”或“ mui”过滤该名称,该方法仅用于查找名称。但是尝试将其通过管道传递到变量中是行不通的。
dir "\\server\path\here" /b | Find "client" | set Client
dir "\server\path\here" /b | Find "mui" | set MUI
因此,我尝试了一下在谷歌搜索期间发现的其他项目,但这些项目也不起作用。
FOR "tokens=*" %%a in ('DIR "\\server\path\here\"' /b) do (SET OUTPUT=%%a)
for /f "tokens=*" %%i in ('dir \\\server\path\here /b | Find client') do @echo %%i
for /f %%a in ('dir \\server\path\here /B | find "client"') do set FileCount=%%a
我在这里想念什么或做错什么了?
对于那些后来来这里的人,我最终使用了
for /f "tokens=*" %%i in ('dir \\server\path\here /b ^| Find "client"') do (Set BaseClient=%%i)
答案 0 :(得分:1)
FOR "tokens=*" %%a in ('DIR "\\server\path\here\"' /b) do (SET OUTPUT=%%a)
应该有效(如果您查找唯一或最后一个文件)
for /f "tokens=*" %%i in ('dir \\server\path\here /b ^| Find "client"') do @echo %%i
您忘了引用find
字符串(也许dir /b /a-d ...
和find /i "client"
可能是个好主意),而|
必须转义。
for /f %%a in ('dir \\server\path\here /B ^| find "client"') do set FileCount=%%a
文件计数?您可能想在这里dir /b /a-d ... ^| find /i /c "client"
。