1
我真的很陌生批處理腳本,所以請耐心等待! 在Windows XP中我有一個可執行文件有input.in
和output.out
文件。 我想創建一個批處理,它讀取輸入文件,修改一行或多行,運行.exe
並將輸出存儲在名稱取決於對輸入文件所做更改的文件夾中。Windows批處理文件以不同的輸入文件運行可執行文件
說我有與4行這樣一個輸入文件:
32.0d0 ! first parameter
54.0d5 ! second parameter
1.5d-1 ! third parameter
11.0d0 ! fourth parameter
,我想改變第二參數的範圍0.0-0.85> 1.0 0.1步驟:
@echo off
setlocal EnableDelayedExpansion
set ReplaceLine1=2
set inpfile=input.in
set tempfile=input.temp
set increment=0.1
if exist "%tempfile%" del "%TempFile%"
for /L %%i in (1,1,11) do (
set /A param_value=(%%i-1)*increment
set /A Cnt2=0
for /f %%a in (%inpfile%) do (
set /A Cnt2+=1
if !Cnt2! geq %ReplaceLine1% echo %param_value% >> "%tempfile%" else echo %%a >> "%tempfile%"
)
copy /y "%tempfile%" "%inpfile%"
MD .\"param_value"
executable.exe < "%tempfile%" >> .\"param_value"
)
確實上面有什麼機會讓我接近我想要去的地方?
如果PowerShell是一個選項,它支持浮點數據類型。而我相信它帶有較新的Win版本,並且可以免費獲得XP。 –
2013-03-13 11:20:58
@Peter WrightThanks快速回答!! 我正在學習代碼:我猜的是指令SET value =!value:〜0,-1!。!value:〜-1!是否有處理真實編號....對嗎?你可以詳細說明它在做什麼請? – user2148834 2013-03-13 16:45:59
批處理總是在字符串上工作,數學函數對轉換爲數字表示的數字串起作用,然後轉換回來再次串起。 '%var%'表示變量'var'的值當遇到FOR命令時,整個命令被解析,從FOR到結束DO的右括號,可能在很多行之外。作爲該過程的一部分,'%var%'被替換爲'var'的當前值 - 即PARSE-TIME值。 – Magoo 2013-03-13 16:57:22