我正在编写一个批处理文件Primary.bat,它收集特定目录中的所有文本文件名,并通过管道将输出传递给Generator.bat
Primary.bat当前的内容:
@echo off
SETLOCAL=ENABLEDELAYEDEXPANSION
Rem Following command will write the names of all files in a text file
dir /b "C:\InputOutput\SourceFiles" > "C:\InputOutput\Generator.bat"因此,Generator.bat的内容将是:
input1.txt
input2.txt.
input3.txt
unitedstates1.txt
unitedkingdomsales.txt
majorregion100.txt现在,我需要在Primary.bat中添加代码,以便在Generator.bat中创建上述所有行,并添加一些额外的文本,如下所示:
converter.java C:\InputOutput\SourceFiles\input1.txt C:\InputOutput\OutFiles\input1.rtg
converter.java C:\InputOutput\SourceFiles\input2.txt C:\InputOutput\OutFiles\input2.rtg
converter.java C:\InputOutput\SourceFiles\input3.txt C:\InputOutput\OutFiles\input3.rtg
converter.java C:\InputOutput\SourceFiles\unitedstates1.txt C:\InputOutput\OutFiles\unitedstates1.rtg
converter.java C:\InputOutput\SourceFiles\unitedkingdomsales.txt C:\InputOutput\OutFiles\unitedkingdomsales.rtg
converter.java C:\InputOutput\SourceFiles\majorregion100.txt C:\InputOutput\OutFiles\majorregion100.rtg一旦运行了Primary.bat,您就可以双击Generator.bat,这将执行所有命令。
提前感谢
发布于 2018-01-23 19:43:13
注意!!这是假设按照您的示例,目录中的所有文件都具有.txt扩展名
@echo off
if exist "C:\InputOutput\Generator.bat" move /Y "C:\InputOutput\Generator.bat" "C:\InputOutput\Generator.back"
echo @echo off > "C:\InputOutput\Generator.bat"
setlocal enabledelayedexpansion
for /F %%a in ('dir /b C:\InputOutput\OutFiles\') do (
set result=%%a
set renamed=!result:.txt=.rtg!
echo converter.java "C:\InputOutput\SourceFiles\!result!" "C:\InputOutput\OutFiles\!renamed!" >> "C:\InputOutput\Generator.bat"
)
endlocal发布于 2018-01-23 20:08:54
关于你的代码,我仍然有一些不理解的地方,但就我对你的任务的理解而言,这应该是可行的:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
TYPE NUL>Generator.bat
ECHO @ECHO OFF>>Generator.bat
FOR /F %%F IN ('DIR /B InputOutput\SourceFiles') DO (
ECHO START converter.java "C:\InputOutput\SourceFiles\%%F" "C:\InputOutput\OutFiles\%%~nF.rtg">>Generator.bat
)因为您只想执行converter.java,所以您也可以跳过START。我建议START能够决定您希望如何执行您的应用程序(例如。通过添加/b或/p或/w等作为START的参数)。
发布于 2018-01-23 21:31:57
下面的方法应该是可行的。因为converter.java是源文件,所以不能执行。因此,我假设您指的是java Converter,假设您已经编写了一个名为Converter的类,将其放在Converter.java中,并使用javac Converter.java对其进行编译以创建Converter.class。
@echo off
>C:\InputOutput\Generator.bat (for %%f in (C:\InputOutput\SourceFiles\*.txt) do (
echo java Converter "%%f" "C:\InputOutput\OutFiles\%%~nf.rtg"
))https://stackoverflow.com/questions/48399721
复制相似问题