我想编写一个批处理文件,该文件将通过特定查询调用命令。
所以我有
aaa-test-01.txt
b-test-a-02.txt
cc-test-03.txt //newset
查询:
dir *test*.txt /o-d
(获取所有自定义文件,按日期顺序排列)
现在我想用记事本打开第一个结果。
问题
如何创建批处理文件,以便能够像这样运行它:
run.bat *test*.txt
批处理文件应具有以下内容:
notepad %the file%
基本上,我想用最新的文件打开记事本。
答案 0 :(得分:2)
我建议您在npzfile = np.load(path+datasetNo+'\\temp.npz')
arrs = npzfile.files
oldPts = npzfile[arrs[0]]
newPts = npzfile[arrs[1]]
# remove all the negative values
oldPts = oldPts[oldPts.min(axis=1)>=0,:]
newPts = newPts[newPts.min(axis=1)>=0,:]
# round to integers
oldPts = np.around(oldPts).astype(int)
newPts = newPts.astype(int)
# put the oldPts into 2d array
H, xedg,yedg= np.histogram2d(oldPts[:,0],oldPts[:,1],
bins = [xMax,yMax],
range = [[0, xMax], [0, yMax]])
finalNewList = []
N = 5
for pt in newPts:
if not H[max(0,pt[0]-N):min(xMax,pt[0]+N),
max(0,pt[1]- N):min(yMax,pt[1]+N)].any():
finalNewList.append(pt)
finalNew = np.array(finalNewList)
循环中运行该命令,反转日期顺序,以便它在退出循环之前先返回并以最新的顺序执行,(这样可以防止下一个文件被执行上)。
For /F
上面的示例使用最近的@For /F "Delims=" %%A In ('Dir /B /A:-D /O:-D /T:C "*-test-*.txt" 2^>Nul') Do @Start "" Notepad "%%A" & Exit /B
重做日期,而不是C
强制或A
书写的(默认),输入{{1 } {}处的{}},以查看W
命令可用的用法信息。
答案 1 :(得分:1)
可以通过重定向文件中的输入来设置变量。
=== run.bat
@ECHO OFF
SET "TEMPFILE=%TEMP%\firstfile.tmp"
FOR /F "delims=" %%f IN ('DIR /B /A:-D /O:-D "%~1"') DO (ECHO>"%TEMPFILE%" %%~f")
SET /P "FIRSTFILE=" <"%TEMPFILE%"
notepad "%FIRSTFILE%"
IF EXIST "%TEMPFILE%" (DEL "%TEMPFILE%")
在命令提示符下,只需运行.bat文件脚本。
CALL run.bat *test*.txt
如果您想继续使用PowerShell并具有最新版本5或更高版本,可以使用它。
Get-ChildItem -File '*test*.txt' |
Sort-Object -Property LastWriteTime |
Select-Object -First 1 |
ForEach-Object { & notepad $_.Name }