2013-08-01 63 views
1

我在運行一個.bat文件觸發的機器上運行程序。現在,在運行腳本之前,我手動修改.bat以指向特定的文件/文件夾,這隻需要幾分鐘,因爲我一次只能運行3到4個文件。在不久的將來,我將需要在200到500個文件組中運行這個腳本。每次手動嘗試編輯.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輸出)並將上面的信息添加到正確的位置。

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

你可能會做這樣的事情:

$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 
} 
+0

正是我在找的東西! – ThinkSpace

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 
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 
) 

應該執行這一要求。