我必须从文件夹中获取最新文件,然后在数据库中执行更多操作。所以我能够从文件夹中获取最近的文件,如下所示
.os cd "C:\Users\krishha\Desktop\latest\"
.os for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set recent=%%x
echo %recent% --GIVES THE RECENT FILENAME
我想使用上面的输出,即最近的文件名到echo语句下面
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\'WANT OUTPUT OF ABOVE ECHO HERE' >>C:\Users\krishha\Desktop\latest\h.txt
我尝试了下面的脚本,但没有得到任何
echo .Logon Teradata/username,password;>> C:\Users\krishha\Desktop\latest\h.txt
.os cd "C:\Users\krishha\Desktop\latest\"
.os for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set recent=%%x
echo %recent%
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\%recent%,skip=1;>>C:\Users\krishha\Desktop\latest\h.txt
echo .REPEAT * >>C:\Users\krishha\Desktop\latest\h.txt
---我在%recent%
的位置变得空白答案 0 :(得分:2)
您应该能够像以前一样将环境变量包含在百分比符号中,从而回显您想要的环境变量:
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\%recent%' >>C:\Users\krishha\Desktop\latest\h.txt
在我的电脑上执行以下操作
for /f "delims=" %%x in ('dir /od /a-d /b .') do set recent=%%x
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\%recent%'
给我
.import vartext ' ' file = C:\Users\krishha\Desktop\latest\test4.bat '
答案 1 :(得分:1)
我认为您没有显示批处理文件的重要部分,否则@FloatingKiwi的解决方案将起作用。
也许你的完整代码在括号内,而不是它可以解释你的结果。
为了避免扩展百分比和阻止问题,您可以使用延迟扩展,这也可以避免最近文件名中的)&
等内容出现问题。最后我将在单个块中构建输出,因此您只需要一次文件重定向。
setlocal EnableDelayedExpansion
cd "C:\Users\krishha\Desktop\latest\"
for /f "delims=" %%x in ('dir /od /a-d /b .') do set "recent=%%x"
(
echo .Logon Teradata.gdw.cba/username\password;
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\!recent!,skip=1;
echo .REPEAT *
echo USING (
echo a varchar(500^)
) >> C:\Users\krishha\Desktop\latest\h.txt