Batch file 计划批处理文件错误(0xff)-执行正常it工作正常

Batch file 计划批处理文件错误(0xff)-执行正常it工作正常,batch-file,scheduled-tasks,windows-sbs,Batch File,Scheduled Tasks,Windows Sbs,我有这个批处理文件要执行 @echo off set /a count=0 for /f "tokens=1delims=:" %%i in ('findstr /n "^" "foto1.txt"') do set /a count=%%i set /a rd=%random%%%count if %rd% equ 0 (set "skip=") else set "skip=skip=%rd%" set "found=" for /f "%skip%tokens=1*delims=:" %

我有这个批处理文件要执行

@echo off 
set /a count=0
for /f "tokens=1delims=:" %%i in ('findstr /n "^" "foto1.txt"') do set /a count=%%i
set /a rd=%random%%%count
if %rd% equ 0 (set "skip=") else set "skip=skip=%rd%"
set "found="
for /f "%skip%tokens=1*delims=:" %%i in ('findstr /n "^" "foto1.txt"') do if not defined found set "found=%%i"&set "var=%%j"
echo.%var%
break > urlfoto1.txt
echo %var% >> urlfoto1.txt
set /a count=0
for /f "tokens=1delims=:" %%i in ('findstr /n "^" "foto2.txt"') do set /a count=%%i
set /a rd=%random%%%count
if %rd% equ 0 (set "skip=") else set "skip=skip=%rd%"
set "found="
for /f "%skip%tokens=1*delims=:" %%i in ('findstr /n "^" "foto2.txt"') do if not defined found set "found=%%i"&set "var=%%j"
echo.%var%
break > urlfoto2.txt
echo %var% >> urlfoto2.txt
set /a count=0
for /f "tokens=1delims=:" %%i in ('findstr /n "^" "foto3.txt"') do set /a count=%%i
set /a rd=%random%%%count
if %rd% equ 0 (set "skip=") else set "skip=skip=%rd%"
set "found="
for /f "%skip%tokens=1*delims=:" %%i in ('findstr /n "^" "foto3.txt"') do if not defined found set "found=%%i"&set "var=%%j"
echo.%var%
break > urlfoto3.txt
echo %var% >> urlfoto3.txt
此脚本从文件上的列表生成随机jpg url,并使用1个随机jpg url创建一个txt新文件

当我手动执行它时,它工作得很好。 但是当我使用Windows任务调度器来调度它时,我检索到一个(0xFF)错误。 (0xff)是什么意思?为什么日程安排不起作用

  • 我不喜欢批处理中的冗余,请使用计数
    for/l
    调用:sub
  • 使用
    find/c
    更容易获得文件的行数
  • 使用
    more+x
    可以避免区分跳过计数
  • 仅输出一行时,直接使用
    覆盖以前的内容
这里使用
%~dp0
(批处理文件夹)进行输入/输出

:: Q:\Test\2019\05\02\SO_55951454.cmd
@echo off 
cd /d "%~dp0"
for /L %%L in (1,1,3) do Call :Sub %%L
Goto :Eof

:Sub
for /f %%i in ('find /C /V "" ^<"foto%1.txt"') do set count=%%i
set /a "rd=%random% %% count"
for /f "delims=" %%i in ('more +%rd% "foto%1.txt"') do set "var=%%i"&goto :cont
:cont
echo.%var%
>"urlfoto%1.txt" echo.%var%
Goto :Eof
::Q:\Test\2019\05\02\SO\u 55951454.cmd
@回音
cd/d“%~dp0”
对于(1,1,3)中的/L%%L,请拨打:Sub%%L
后藤:Eof
:Sub
对于/f%%i in('find/C/V”“^),类似于回答:

@Echo关闭
CD/D“%~dp0”
对于(1 2 3)中的%%A,请拨打:Sub“%%A”
暂停
后藤:EOF
:Sub
对于/F“Delims=”('Set line[2^>Nul')中的%%A,请设置“%%A=”
Set“total=”和Set“randlinenum=”
对于/F“Tokens=1*Delims=[]”中的%%A('Find/V/N'^