Batch file 批处理文件以重复程序进程
我不完全熟悉命令行脚本。我正在尝试创建一个批处理文件以读取txt文件,应用一种格式将文件从报表转换为表格,然后将文件导出为电子表格 我可以让脚本为单个文件工作,但是如果我尝试通过循环运行多个文件,则什么也不会发生。它启动程序,通过每个脚本行执行,但又不执行任何操作。它没有设置路径。没有撞车。在这里,我将脚本从循环中取出,并将其应用于单个文件,它可以正常工作。有什么建议吗Batch file 批处理文件以重复程序进程,batch-file,cmd,Batch File,Cmd,我不完全熟悉命令行脚本。我正在尝试创建一个批处理文件以读取txt文件,应用一种格式将文件从报表转换为表格,然后将文件导出为电子表格 我可以让脚本为单个文件工作,但是如果我尝试通过循环运行多个文件,则什么也不会发生。它启动程序,通过每个脚本行执行,但又不执行任何操作。它没有设置路径。没有撞车。在这里,我将脚本从循环中取出,并将其应用于单个文件,它可以正常工作。有什么建议吗 SET monarch_bin="C:\Program Files (x86)\Datawatch\Monarch\Progr
SET monarch_bin="C:\Program Files (x86)\Datawatch\Monarch\Program\Monarch.exe"
for /f "delims=" %%i in ('dir /b "C:\Users\Me\Desktop\Sample Monarach Input\*.txt"') do (
echo File directory : %%i
SET infilename=/Rpt: "C:\Users\Me\Desktop\Sample Monarach Input\%%i.txt"
echo ####### In file name:%infilename%
SET model_file=/mod:"C:\Users\Me\Desktop\Sample Monarach Input\InvoiceSummary.xmod"
echo ####### Model: %model_file%
SET outfilename=/exp:"C:\Users\Me\Desktop\Sample Monarach Input\OUTPUT.xlsx"
echo ####### Out file name:%outfilename%
SET mode=/expfileopt:append /T
echo ####### File: %%i
%monarch_bin%%infilename%%model_file%%outfilename%%mode%
pause
)
延迟扩展问题(说明) 如果在代码块内更改了变量值,则需要延迟扩展以检索同一代码块内更改的值 但是,这可以写成
set "monarch_bin=C:\Program Files (x86)\Datawatch\Monarch\Program\Monarch.exe"
set "inputFolder=C:\Users\Me\Desktop\Sample Monarach Input"
for %%i in ("%inputFolder%\*.txt") do (
"%monarch_bin%" ^
/Rpt:"%%~fi" ^
/mod:"%%~dpiInvoiceSummary.xmod" ^
/exp:"%%~dpioutput.xlsx" ^
/expfileopt:append /T
)
如果
for
循环将迭代.txt
文件列表,并且%%i
将保存对文件的引用,那么,%%fi
是文件的完整路径,%%~dpi
是存储文件的驱动器和路径。Read.Hi MC nd,我试图实现提供的解决方案,但要么语法错误,要么就是我不太理解。对不起,我的意思是,另一个问题中的问题根源是相同的:在更改变量的块中看不到变量的更改。我已经包含了对您的代码的修改。感谢您的澄清。我有类似于上面的内容,但文件名中的空格字符导致了问题。
set "monarch_bin=C:\Program Files (x86)\Datawatch\Monarch\Program\Monarch.exe"
set "inputFolder=C:\Users\Me\Desktop\Sample Monarach Input"
for %%i in ("%inputFolder%\*.txt") do (
"%monarch_bin%" ^
/Rpt:"%%~fi" ^
/mod:"%%~dpiInvoiceSummary.xmod" ^
/exp:"%%~dpioutput.xlsx" ^
/expfileopt:append /T
)