我正在编写一个批处理文件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
即可执行所有命令。
提前致谢
答案 0 :(得分:0)
注意!! 根据您的示例,假设目录中的所有文件都有.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
答案 1 :(得分:0)
关于你的代码,我仍然有一些不明白的地方,但就我理解你的任务而言,这应该有用:
@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
或其他任何内容作为{的参数{1}})。
答案 2 :(得分:0)
以下内容应该有效。由于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"
))