想在 windows 下面写一个脚本,一键安装开发环境,用啥写比较好写一些? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yazoox
V2EX    Windows

想在 windows 下面写一个脚本,一键安装开发环境,用啥写比较好写一些?

  •  
  •   yazoox 2022-02-21 15:34:23 +08:00 4653 次点击
    这是一个创建于 1328 天前的主题,其中的信息可能已经有所发展或是发改变。

    比如: 检查 python 2.x, python 3.x 有没有安装,没有安装就下载安装(默认就最新版本,可以通过参数指定版本) 检查 nodejs, 没有就下载安装(同上) 检查 javaruntime, ... 检查 visual studio ,... 以及 一些有安装包,或者安装脚本,并且支持静默安装的工具 ...

    本来想用 windows command line ,但这个“太弱了”,使用起来很“难受”,还不好调试,powershell 不太熟。难道要用 python 或者 Javascript ?

    windows 平台下有一个 scoop 还是啥,不知道能否写个脚本,让 scoop 一个一个安装工具?

    所以,特来请教一下。

    或者,有没有已经写好的脚本,能够安装大多数 windows 下台下的开发工具,剩下的,我再补充一下?

    谢谢!

    28 条回复    2022-02-23 10:15:44 +08:00
    DGideas
        1
    DGideas  
       2022-02-21 15:37:51 +08:00
    看到楼主头像就点进来了。。。学学 PowerShell 如何
    k5ye533
        2
    k5ye533  
       2022-02-21 15:39:53 +08:00
    Nodejs
    yazoox
        3
    yazoox  
    OP
       2022-02-21 15:42:33 +08:00
    @DGideas 我的头像咋了?:-)
    CallMeReznov
        4
    CallMeReznov  
       2022-02-21 15:42:58 +08:00
    winget
    不过这玩意儿也是需要安装的.
    然后利用 powershell 来检测系统环境后使用 winget 安装.
    abear
        5
    abear  
       2022-02-21 15:47:47 +08:00
    rust
    dcsuibian
        6
    dcsuibian  
       2022-02-21 15:49:49 +08:00
    我也有这个问题,想做个一键配置脚本。
    装软件用 winget 就好,但对于图形化又不带同步功能的程序来说,装好了怎么配置还是个难题。
    yejinmo
        7
    yejinmo  
       2022-02-21 15:50:02 +08:00
    VBS / BAT 就可以实现这些操作,但是为了良好的开发体验及用户体验,建议 C#(.Net Framework) 写个程序,Windows 原生运行,不需要安装运行时,结合 Costura.Fody 实现单文件部署,用户体验也不错
    C02TobNClov1Dz56
        8
    C02TobNClov1Dz56  
       2022-02-21 15:57:11 +08:00
    scoop 可以, 但是就是下载多半需要翻墙, 需要配置代理先. 貌似没有傻瓜式方案
    bpazy
        9
    bpazy  
       2022-02-21 16:11:28 +08:00
    scoop? 缺点是 GUI 类软件无法安装(比如 VS ),但一般各种环境也没 GUI 啥事。

    我是安装 scoop 准备了一个 ps 脚本,通过 scoop 安装依赖再准备了一个 ps 脚本,地址在这可以参考下: https://github.com/Bpazy/my-scoop

    前段时间电脑折腾崩了,用这套方案非常快就恢复开发环境了。
    MuSeCanYang
        10
    MuSeCanYang  
       2022-02-21 16:17:02 +08:00
    AU3.
    feilong
        11
    feilong  
       2022-02-21 16:17:56 +08:00 via Android
    choco ?
    不过 PowerShell 还是没回避掉
    LifStge
        12
    LifStge  
       2022-02-21 16:22:26 +08:00
    @bpazy 脚本做好 很方便 不过就是 环境的依赖配置不强的 或者同步配置备份配置做的好的 就行 如果不是 也是折腾 这种情况就还是配置好做备份来的方便
    bpazy
        13
    bpazy  
       2022-02-21 16:51:54 +08:00
    @LifStge 没错。但同步、备份配置也是一个挺折腾的事情,我也想求一个好的方案。

    目前我的方案是映射配置文件到 onedrive 中,多台设备均需配置一次,就可以多地同步、备份配置了。
    Pipecraft
        14
    Pipecraft  
       2022-02-21 17:25:35 +08:00
    可以使用支持跨平台,自己熟练的脚本语言。比如 python 。
    这样可以在多个平台用一种语言编写,复用代码,并且容易维护。
    手动安装 python, 然后其他用脚本一键安装就可以了。
    tabris17
        15
    tabris17  
       2022-02-21 17:35:29 +08:00
    scoop 的安装源很多是 github 上的,你的目标主机不能科学上网的话,安装不了
    choco 也一样
    tcpdump
        16
    tcpdump  
       2022-02-21 18:20:15 +08:00
    @yazoox 很像他养的宠物
    phiysng
        17
    phiysng  
       2022-02-21 22:59:38 +08:00
    如果是新系统的话,其实也可以考虑使用 Dism++或者类似的工具制作镜像,镜像里面打包需要的环境。
    使用的时候直接通过镜像还原。

    scoop 国内不挂代理基本没法用。
    RikkaW
        18
    RikkaW  
       2022-02-22 00:33:12 +08:00
    用 scoop ,把 ~/scoop 文件夹复制走后 scoop reset * 就可以。
    lyxeno
        19
    lyxeno  
       2022-02-22 07:42:57 +08:00 via Android
    choco 有 import 和 export ,不过也得先用 powershell 脚本安装 choco
    okampfer
        20
    okampfer  
       2022-02-22 09:37:02 +08:00
    必须 powershell ,而且是 powershell-core ,开源的、跨平台的 powershell https://github.com/powershell/powershell

    scoop 安装软件当然也可以用 powershell 写。

    至于“有没有已经写好的脚本,能够安装大多数 windows 下台下的开发工具”,我并没有发现有,但既然你都知道 scoop 了,就先自己写 powershell script 安装自己需要的软件,无法满足需求再说。
    dragonPunch
        21
    dragonPunch  
       2022-02-22 10:11:10 +08:00
    chocolatey 解君愁 via https://chocolatey.org/
    dragonPunch
        22
    dragonPunch  
       2022-02-22 10:13:58 +08:00
    @dragonPunch 补充说明:符合 po 主的批量静默安装+自动配置要求
    DGideas
        23
    DGideas  
       2022-02-22 10:25:08 +08:00
    @yazoox 很可爱啊!小金毛!
    xiaoshiguang9
        24
    xiaoshiguang9  
       2022-02-22 10:45:44 +08:00
    楼主写好了来 v 站分享下啊
    heaton_nobu
        25
    heaton_nobu  
       2022-02-22 11:23:40 +08:00
    PowerShell DSC
    zalss
        26
    zalss  
       2022-02-22 21:29:43 +08:00
    非常需要这个!
    XiaoyehuaDev
        27
    XiaoyehuaDev  
       2022-02-22 22:36:42 +08:00
    nix
    g00001
        28
    g00001  
       2022-02-23 10:15:44 +08:00
    这个用什么编程语言写应当都不难,就是一个简单的下载。
    不过很多安装包比较大,安装可以是静默自动安装,没个界面不太方便,最好用能开发图形界面的桌面开发工具,例如 aardio ,举几个例子:

    用 aardio 自动安装 Node.js
    -------------------------------
    import nodeJs;
    nodeJs.install();

    用 aardio 自动安装 JRE
    -------------------------------
    import java.jre.v8;
    import java.jre.v8ora;
    import java.jre.v6;

    用 aardio 自动安装 Go 语言
    -------------------------------
    import golang;
    golang();

    用 aardio 自动安装 Rust
    -------------------------------
    import process.rust;
    process.rust.install();

    用 aardio 自动安装 julia
    -------------------------------
    import julia;

    用 aardio 自动安装 Ruby
    -------------------------------
    import process.ruby
    import process.ruby.install();

    用 aardio 自动安装 VS Code
    -------------------------------
    import process.code;
    process.code.install();

    用 aardio 自动安装 Electron
    -------------------------------
    import electron.runtime

    用 aardio 自动安装 ChromDriver 自动匹配浏览器版本
    -------------------------------
    import chrome.driver

    aardio 自带的 Python 运行库( 这个是自带的绿色版,不用安装)
    -------------------------------
    import py2 Python 2.7
    import py3 Python 3.8
    import py3.4 Python 3.4
    import py3.6 Python 3.6
    import py3.10 Python 3.10
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2193 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:40 PVG 08:40 LAX 17:40 JFK 20:40
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86