我从旧电脑备份了一些.job
文件(即计划任务)。我发现 Windows 7 不支持作业文件,而是接受 xml 文件。所以,我想知道是否有办法将作业文件转换为 xml 文件并将其导入 Windows 7 机器?
谢谢。
答案1
如果您的机器不在同一个域中或无法进行通信,则使用 /S 开关将不起作用,因此您需要一个替代方案。虽然上述描述手动过程的答案对我来说也有效,但我想要一种更简单的方法,并想出了这个:http://briandunnington.github.io/migrate-scheduled-jobs.html
本质上,您将 .job 文件复制到 c:\windows\tasks,然后运行脚本(提供用户名/密码)并且您的作业会自动转换 - 无需复制旧的 dll、创建批处理脚本、重命名等。
答案2
此过程要求您能够获取有关 XP 计算机的信息,因为您将需要所有 .job 文件。但它将获取所有 .job 文件并创建 .xml 和相关的计划任务。当我升级系统并有 260 个 .job 文件需要传输时,一位同事为我提供了文件和一般流程,我将其写下来,试图帮助处于相同位置的其他人。它有点长,但很有效,这才是最重要的。希望它能有所帮助!
- 从 XP 计算机中,将 schedsvc.dll 和 schtasks.exe 文件从 C:\WINDOWS\system32\ 复制到 USB 驱动器上。a. 如果您在 XP 计算机上找不到这些文件,可以在此处查看http://www.whatisdll.com/schedsvc-dll-repair-free-download-windows-78xpvista/和这里http://www.whatisdll.com/schtasks-exe-repair-free-download-windows-78xpvista/求助。
- 从 XP 计算机,转到存储 .job 文件的文件夹(最有可能是 C:\Windows\Tasks)并将所有 .job 文件复制到 USB 驱动器上。
- 在 Vista/Win 7 计算机的桌面上为此过程创建一个文件夹。例如 C:\Users\username\Desktop\SchedTasks
- 将.job 文件、.dll 和 .exe 文件移动到 Vista/Win 7 计算机上的新文件夹中。
- 打开 C:\WINDOWS\Tasks 并将所有 .job 文件复制到该文件夹中。
- 打开一个新的记事本文档并输入以下内容(不带引号)“dir /B >> dir.txt”
- 将文本文档保存在桌面上创建的文件夹中,文件名为 GetFiles
- 将文件的 .txt 扩展名更改为 .bat,然后在询问您是否确定要更改扩展名的弹出窗口中单击“是”。
- 检查以确保您在 Vista/Win 7 计算机桌面上创建的新文件夹中现在包含以下文件:a. 来自 XP 计算机的所有 .job 文件 b. GetFiles.bat c. schedsvc.dll d. schtasks.exe
- 双击 GetFiles.bat。
- 将出现一个名为 dir.txt 的新文件。注意 --> 它可能会作为文件夹中的第一个文件出现。
- 打开 dir.txt 文件。它将包含文件夹中所有文件的名称。
- 删除 GetFiles.bat、schdsvc.dll 和 schtasks.exe 的文件名,这样就只剩下 .job 文件名。
- 打开一个新的 Excel 电子表格。
- 在列出的列中输入以下内容:a. A 列 - schtasks b. B 列 - /change c. C 列 - /TN d. E 列 - /RU e. F 列 - 您的用户名 f. G 列 - /RP g. H 列 - 您的密码(如果有)
- 复制 dir.txt 文件中的文件名并将其粘贴到 D 列中。(请记住,DOS 中不允许使用“空格”,因此请将其替换为“_ 下划线”。您还需要更改作业名称)
- 复制第 13 步中填写的其他列,以匹配列出的文件名数量。
- 按 CTRL+H。在“查找内容”中输入 .job,将“替换为”留空,然后单击“全部替换”。
- 单击文件 --> 另存为,将电子表格保存为文本 (MS-DOS) (*.txt) 文件,保存到您创建的文件夹中,文件名随意,例如:Taskcmd。在两个弹出窗口中单击确定和是,询问您是否确定要将文件保存为该格式。
- 关闭电子表格(您可以根据需要保存它,但它不会再次使用),但在执行下一步之前必须将其关闭。
- 打开刚刚创建的 .txt 文件,确保所有文件名后面都没有 .job。如果有,请删除它们(您可以使用相同的 CTRL+H 方法)。当您确定所有文件名都没有 .job 时,请关闭该文件(如果您必须进行任何更改,请记住保存该文件)。
- 将 .txt 扩展名更改为 .bat,当系统询问您是否确定时单击“是”。
- 点击开始菜单并在搜索栏中输入cmd,打开命令提示符。
- 输入桌面文件夹中文件的路径。使用上面的示例,路径应为(不带引号)“ cd C:\Users\username\Desktop\SchedTasks”,然后按 Enter。
- 在新提示中输入第 18 步中创建的文件的名称(包括扩展名)。使用上面的示例,该名称应为(不带引号)“Taskcmd.bat”,然后按 Enter。
- 现在您应该看到所有文件都在处理中,并且每个文件后面都显示有“成功”的提示。
- 批处理完成后,您将能够打开任务计划程序,单击任务计划程序库,并在中心窗格中查看所有准备运行的新任务。
答案3
基于答案和评论...
您无需下载任何软件,也不需要经历复杂的命令和电子表格过程。
这是一个批处理文件,它可以正确执行此操作并考虑任务名称中的空格。
您唯一需要做的就是将 .job 文件从 XP 机器复制到 Vista - Windows 10 机器,将 schtasks.exe 从 XP 机器复制到新机器,然后在下面的批处理文件中更改用户和密码。
批处理文件本身解释了这一切。
@echo off
setlocal
echo 1) Copy the .job files from your XP machine to c:\windows\tasks on the new machine.
echo .
echo 2) Copy schtasks.exe from c:\windows\system32 on your XP machine and put it in the same folder as this batch file on the machine running Vista - Windows 10.
echo.
echo 3) Change user below to the user that will own / run the tasks on the new machine.
echo .
echo 4) Change password to the password of that user.
echo .
echo 5) Run this batch file.
pause
if not exist schtasks.exe (
echo You don't have schtasks.exe in the same folder as this batch file.
echo Copy schtasks.exe from c:\windows\system32 on your XP machine and put it in the same folder as this batch file and
echo try again.
goto end
)
rem change user as instructed above
set tmpuser=user
rem change pass as instructed above
set tmppass=password
echo You should now see every job getting imported into the new OS.
for %%a in ("c:\windows\tasks\*.job") do schtasks.exe /change /TN "%%~na" /RU %tmpuser% /RP %tmppass%
echo Done! Note: Do NOT delete the job files. Windows apparently still needs them.
:end
endlocal