我有一个"设置"脚本,我在早上运行,启动我需要的所有程序.现在其中一些需要额外的环境设置,所以我需要将它们包装在小型BAT脚本中.
如何在后台运行Windows XP上的这样一个脚本?
CALL env-script.bat 同步运行它,即只有在env-script中的命令终止后才能继续安装脚本.
START/B env-script.bat 在同一个命令提示符下运行另一个CMD.exe实例,使其处于一个非常混乱的状态(我看到嵌套CMD.exe的输出,键盘已经死了一段时间,脚本没有被执行).
START/B CMD env-script.bat产生相同的结果.CMD中的所有标志都不符合我的账单.
是否有可用于在Windows批处理文件中并行执行多个进程的工具?我找到了一些有趣的Linux工具(并行和PPSS),但是,我需要一个适用于Windows平台的工具.
额外奖励:如果该工具还允许在多台机器之间轻松分配流程,并通过PsExec远程运行流程,那将会很棒.
示例:我希望在以下for循环中使用它
for %F in (*.*) do processFile.exe %F
Run Code Online (Sandbox Code Playgroud)
有限数量的processFile.exe实例并行运行以利用多核CPU.
我知道可以在 Windows CMD 中一行运行两个命令,如下所示:
dir & echo foo
Run Code Online (Sandbox Code Playgroud)
但是如何才能并行运行两个命令呢?我也知道可以通过使用 START 来实现这一目标。但随后您必须将这些命令放入批处理文件中。我想从命令行本身并行启动它们。
我想要实现的是这样的:
set NODE_ENV=development&& nodemon -e js,jsx,cjsx,css,scss,html,coffee --watch ./app/ server/server.js & set NODE_ENV=development&& node server/hotLoadServer.js
Run Code Online (Sandbox Code Playgroud)
如果我在单独的窗口中单独运行命令,它们就可以完美工作。但我似乎无法让它们在一个命令提示符下作为单行运行。发生的情况是,第一个运行,第二个没有运行。第一个将保持打开状态,第二个永远不会执行。
我在这里阅读了该问题的一些答案,但没有一个对我有用。我有不同的训练文件,需要三天才能完成,但如果我同时运行这些文件,我可以减少时间。此外,当我完成所有方法的训练时,我需要直接运行测试文件。
import os
import subprocess,_multiprocessing
import sys
import gc # Garbage Collector
version = ".".join(map(str, sys.version_info[:3]))
if len(version) >3:
version=version[:-2];
current_dir = os.path.dirname(os.path.realpath(__file__))
# multiprocessing.Process(["python"+version, os.path.join(current_dir, "main_s_train.py"),os.path.join(current_dir, "SC.py")])
gc.collect()
bots = [subprocess.check_call(["python"+version, os.path.join(current_dir, "main_train.py")]),subprocess.check_call(["python"+version, os.path.join(current_dir, "main_s_train.py")]),subprocess.check_call(["python"+version, os.path.join(current_dir, "SC.py")]),subprocess.check_call(["python"+version, os.path.join(current_dir, "MC.py")])]
modules = map(__import__,bots)
import multiprocessing,subprocess
for bot in (bots):
p = multiprocessing.Process(target=lambda: __import__(bot))
p.start()
Run Code Online (Sandbox Code Playgroud)
有没有同时运行多个Python脚本的建议?
当您搜索执行命令行工具或命令提示符的方法时,您会发现太多结果,如此问题,此问题或本文.它们都包含完全相同问题的解决方案.但是,我目前正在开发的程序必须执行命令行工具近500次.当我执行以下操作时:
for (int i = 0; i < 500; i++)
{
Process.Start("cmd","My Input: " + i);
}
Run Code Online (Sandbox Code Playgroud)
计算机停止响应一段时间,因为同时打开了太多程序.
当我执行以下操作时:
for (int i = 0; i < 500; i++)
{
Process.Start("cmd","My Input: " + i);
System.Threading.Thread.Sleep(myInterval);
}
Run Code Online (Sandbox Code Playgroud)
该程序花费了太多时间来完成工作(如果我的程序在执行这些命令时挂起,我没有问题).
从我的观点来看,所有这一切发生的主要原因是我每次运行工具时都会打开另一个cmd窗口.我可以保持一个单独的cmd窗口打开并继续提供命令直到我完成了吗?有没有更有效的方法呢?
cmd ×3
batch-file ×2
c# ×1
concurrency ×1
multicore ×1
performance ×1
python-3.x ×1
shell ×1
windows ×1
windows-xp ×1