我已经阅读了很多内容,但我无法理解这一点。这可能是因为我是一个新手。
我想做的是:
我有一个名为start.txt的文件,内容为
..\dll | toapp.exe "..\posdata\filename.xml" "..\OUT" "..\TEMP"
我想在批处理文件中读取它的内容,并仅将filename.xml作为变量。从网络中的设备到设备,它会发生变化。
然后我会使用该变量将文件从一台机器复制到另一台机器,但我只想要一个文件而且我无法确定它是什么start.txt。我可以做所有的复制和检查,以确保它在正确的位置,但不是findtr部分。
任何想要理解的想法都会很棒
答案 0 :(得分:1)
@echo off
set "start_file=start.txt"
for /f tokens^=5^ delims^=\^" %%# in ('type "%start_file%"^|find /i "..\posdata"') do set "xml_file=%%#"
echo %xml_file%
您的问题有点不清楚。这是文件中唯一的一行吗?这是确切的内容吗?如何识别文件中的行?
如果只有一行带有“.. \ postdata”字符串,并且内容与所讨论的内容完全一致,则上述脚本将起作用。
修改涵盖两种情况:
@echo off
setlocal
set "start_file=start.txt"
set "xml_file="
for /f tokens^=5^ delims^=\^" %%# in ('type "%start_file%"^|find /i "..\posdata"^|find /i /v "-storedbpath"') do set "xml_file=%%#"
if not defined xml_file (
for /f "usebackq tokens=9" %%# in ("%start_file%") do (
set "xml_file=%%~#"
)
)
echo %xml_file%
答案 1 :(得分:0)
发短信:
for /f "usebackq tokens=4" %%a in ("start.txt") do echo %%~nxa