我在我的机器上运行一个由运行.bat文件触发的程序。现在,我在运行脚本之前手动修改.bat指向特定的文件/文件夹,这只需要几分钟,因为我一次在3到4个文件上运行它。在不久的将来,我将需要在200到500之间的文件组上运行此脚本。每次手动尝试编辑.bat文件将是一场噩梦。
完成的.bat看起来像:
cd\[rootfolder]
mkdir Output
cd\folderpath\to\program
this.is.the.program.exe -i "[rootfolder]\[filename1].pdf" -r "[rootfolder]" -o "[rootfolder]\Output" -u username -p password
this.is.the.program.exe -i "[rootfolder]\[filename2].pdf" -r "[rootfolder]" -o "[rootfolder]\Output" -u username -p password
this.is.the.program.exe -i "[rootfolder]\[filename3].pdf" -r "[rootfolder]" -o "[rootfolder]\Output" -u username -p password
this.is.the.program.exe -i "[rootfolder]\[filename4].pdf" -r "[rootfolder]" -o "[rootfolder]\Output" -u username -p password
我想要做的是创建另一个脚本.ps或.bat,它将从.txt文件(dir / b输出)中获取文件名列表,并将上面的信息添加到正确的位置。< / p>
cd\[rootfolder]
mkdir Output
cd\folderpath\to\program
只会出现在脚本的头部;这可以用另一种方式完成,但如果包括在内,那很好......
this.is.the.program.exe -i "[rootfolder]\
将在.txt文件中的每个文件名之前添加;到目前为止,我可以通过搜索/替换操作来管理这个...
.pdf" -r "[rootfolder]" -o "[rootfolder]\Output" -u username -p password
将添加到文件名后面。这就是我遇到问题的地方!
与文件的唯一相似之处是文件名的开头;例如“Text_”,这就是我可以进行搜索/替换操作的原因。文件的结尾是完全随机的,可以是字母,数字或符号,也可以是任何字符长度。
我想我的问题是:
有没有办法按行位置或类似的方式将文本插入.txt文件?在每一行的最后一个字符后面?
答案 0 :(得分:1)
试试这个:
cd /d "rootfolder"
md output
for %%a in (*.pdf) do "folderpath\to\program\this.is.the.program.exe" -i "%%~a" -r "rootfolder" -o "rootfolder\Output" -u username -p password
或者这个:
cd /d "rootfolder"
md output
cd /d "folderpath\to\program"
for %%a in ("rootfolder\*.pdf") do "this.is.the.program.exe" -i "%%~a" -r "%%~dpa" -o "%%~dpaOutput" -u username -p password
答案 1 :(得分:0)
在powershell你可能会做这样的事情:
$rootfolder = 'C:\path\to\rootfolder'
$outputfolder = Join-Path $rootfolder 'Output'
$programfolder = 'C:\program\folder'
$filelist = 'C:\path\to\files.txt'
$user = 'username'
$pass = 'password'
if ( -not (Test-Path -LiteralPath $outputfolder) ) {
New-Item -ItemType directory -Path $outputfolder
}
Set-Location $programfolder
Get-Content $filelist | % {
.\this.is.the.program.exe -i (Join-Path $rootfolder $_) -r $rootfolder `
-o $outputfolder -u $user -p $pass
}
答案 2 :(得分:0)
cd\[rootfolder]
mkdir Output
cd\folderpath\to\program
for /f "delims=" %%a in (
' the dir /b command that generates the .txt file '
) do (
this.is.the.program.exe -i "[rootfolder]\%%a.pdf" -r "[rootfolder]" -o "[rootfolder]\Output" -u username -p password
)
应执行此要求。