相关疑难解决方法(0)

如何优雅地创建在X下启动WSL程序的Windows快捷方式

xfce4-terminal我在通过 Windows 任务栏上的按钮从 VcXsrv 下的 WSL 安装启动时遇到了一些困难。完成后,除了 xfce4-terminal 之外,我不需要任何 DOS 框/控制台/终端。我已经可以使用了,但是它太丑了。有人有更干净的方法吗?

\n

这是我所做的工作:我在桌面上使用此目标创建了一个 Windows 快捷方式(全部在一行中,为了便于阅读,用换行符分隔):

\n
C:\\Windows\\System32\\wscript.exe\n    \\\\wsl$\\Ubuntu-20.04\\home\\peter\\bin\\windows\\startTerminal.vbs\n
Run Code Online (Sandbox Code Playgroud)\n

startTerminal.vbs灵感来自10 Ways To Run Batch Files And Hide The Console Window \xe2\x80\xa2 Raymond.CC(少数不需要为此安装单独程序的解决方案之一!),它包含:

\n
CreateObject("Wscript.Shell").Run "C:\\Windows\\System32\\wsl.exe -u peter --exec /home/peter/bin/windows/startTerminal.sh",0,True\n
Run Code Online (Sandbox Code Playgroud)\n

startTerminal.sh包含:

\n
export DISPLAY=localhost:0.0\nxfce4-terminal --command=/bin/zsh\n
Run Code Online (Sandbox Code Playgroud)\n

尽管我在 ~/.zshrc 中设置了 DISPLAY 环境,但显然需要设置 DISPLAY。除非您运行登录 shell,否则 wsl.exe 显然不会执行此操作。

\n

一旦所有这些都正常工作,我可以将快捷方式拖到任务栏并单击那里。

\n

我数数3,三个文件合作来实现这个简单的目标?我可以在不安装外部程序的情况下将其限制为一两个吗?

\n

windows x11 windows-subsystem-for-linux

12
推荐指数
2
解决办法
2万
查看次数

如何从java执行批处理文件?

我想从java程序执行批处理文件.

我使用以下命令.

Runtime.getRuntime().exec("server.bat");
Run Code Online (Sandbox Code Playgroud)

但问题是我想给出一个reative路径而不是绝对路径,以便我可以在任何comp上部署该java项目.

项目的目录结构如下:

com
   |
  project
   |
   ------ parser
   |         |_____ Main.java
   |
   -------util
             |_____ Server.bat
Run Code Online (Sandbox Code Playgroud)

我想从"parser"目录中的"Main.java"文件中运行"util"目录中的"Server.bat"文件.

java batch-file

10
推荐指数
4
解决办法
6万
查看次数

"消防并忘记"来自Python脚本的过程

如何从Python脚本启动一个进程(例如另一个Python脚本),以便"子"进程与"父"完全分离,因此父进程可以a)继续其快乐方式而无需等待子进程完成和b)可以在不终止子进程的情况下终止?

家长:

import os

print "Parent started"
os.system("./child.py")
print "Parent finished"
Run Code Online (Sandbox Code Playgroud)

儿童:

import time

print "Child started"
time.sleep(10)
print "Child finished"
Run Code Online (Sandbox Code Playgroud)

运行parent.py打印:

Parent started
Child started
Child finished
Parent finished
Run Code Online (Sandbox Code Playgroud)

我想要它打印:

Parent started
Child started
Parent finished
(seconds later)
Child finished
Run Code Online (Sandbox Code Playgroud)

python subprocess

7
推荐指数
2
解决办法
4741
查看次数

如何使用 Windows 命令行构建 Jekyll 项目生产

我尝试使用 JEKYLL_ENV 变量在生产模式下构建我的 jekyll 项目,但它不起作用。

Jekyll 文档指定production在构建命令中设置环境:

JEKYLL_ENV=production jekyll build
Run Code Online (Sandbox Code Playgroud)

但是在 Windows 上,这种类型的语法是不正确的。我使用了以下语法,但它看起来不起作用:

jekyll build JEKYLL_ENV=production
Run Code Online (Sandbox Code Playgroud)

我还“手动”设置了这个环境变量,但没有生效:

setx JEKYLL_ENV production & jekyll build
Run Code Online (Sandbox Code Playgroud)

set JEKYLL_ENV=production & jekyll build
Run Code Online (Sandbox Code Playgroud)

jekyll

3
推荐指数
1
解决办法
1651
查看次数

对于 Windows 批处理脚本、快捷方式和其他非实时 cmd 方法来说,双与号 (&&) 真的有必要吗?

这个问题基于 @ZaLiTHkA\ 对运行 cmd 命令顺序问题的接受答案的答复,如下所示。

\n\n
\n

只是为了清楚起见:您应该注意&此处的单个符号明确表示实时命令提示符。当通过传递要作为脚本执行的字符串(快捷方式、批处理文件等)来运行命令时,则&&需要 double \xe2\x80\x93 ZaLiTHkA Apr 3 \'14 at 20:28

\n
\n\n

&&运行脚本命令(即快捷方式或批处理文件)真的有必要吗?我发现我仍然能够运行一个简单的命令,例如:cmd /k echo foo & echo bar在运行窗口中并执行同一目标/命令的快捷方式,没有问题。希望有任何澄清或文档明确说明为什么以及是否 &&实际上是批处理脚本的推荐方法,因为它似乎也&可以工作。

\n\n

&&注意:这不是一个区分和定义之间差异的问题&,而是为什么需要 && 正如@ZaLiTHkA\'s 非常明显的赞成评论所指出的。

\n

windows command-line cmd batch-file

3
推荐指数
1
解决办法
3454
查看次数

我们如何使用 C++ Lib Function 或 Windows API 在一个会话中执行多个 cmd 命令?

在 C++ 中运行 cmd 命令之前,我想设置一些临时环境变量,该变量会在命令行会话结束时被删除。例如,在执行下面的 cmd 命令之前,我想设置P4PASSWDperforce 环境变量。

sprintf_s(p4Command, 500, "/C p4.exe print -o \"%s\" -q %s", destination, source);

LPCSTR Command = p4Command;

ShellExecute(0, "open", "cmd.exe", Command, 0, SW_HIDE);
Run Code Online (Sandbox Code Playgroud)

如果允许我们在一个会话中执行多个 cmd 命令,则这是可能的。但我不知道如何实现。如果需要更多输入,请告诉我。

c++ windows winapi cmd

2
推荐指数
1
解决办法
1544
查看次数

如何在 Windows 上使用单个 NPM 命令运行多个 NPM 命令

我正在设置一个 package.json 文件,该文件将启动 Nodemon、运行我的 watch css 命令并使用“npm start”命令运行浏览器同步。

这适用于我工作时的 Mac 计算机,但不适用于我家中的 Windows 计算机。

在我的 Mac 上,它将监听服务器和 SCSS 文件的任何更改,并运行浏览器同步。

在 Windows 上,它仅运行 Nodemon 并等待任何服务器更改。看起来它忽略了我的其他两个命令。

我需要为 Windows 做一些不同的事情吗?理想情况下,我希望代码能够在两个平台上通用。

Nodemon 似乎是这里的问题,因为 watch-css css 和 browsersync 可以工作,但 nodemon 之后的任何内容都不起作用。

"scripts": {
  "build-css": "node-sass --output-style compressed --source-map true -o public/css scss",
  "watch-css": "nodemon -e scss -x \"npm run build-css\"",
  "build-js": "browserify js/app.js -o public/js/app.js",
  "browser-sync": "browser-sync start --port 4000 --proxy 'localhost:3000' --files 'views/*' 'public/**/*' --no-notify",
  "start": "nodemon ./bin/www & npm run watch-css & npm run …
Run Code Online (Sandbox Code Playgroud)

javascript node.js nodemon node-sass browser-sync

2
推荐指数
1
解决办法
2788
查看次数

暂停命令在.bat脚本中不起作用

批处理文件只有两行:

c:\program.exe ...
pause
Run Code Online (Sandbox Code Playgroud)

但是"程序"完成后暂停不运行...我没有看到"按任何关键信息":(

如果我在第一行上移动暂停,那么它就会神奇地起作用.

windows batch-file

1
推荐指数
1
解决办法
4663
查看次数

通过一个快捷方式激活 Python 虚拟环境并更改目录(使用 cmd)

我正在尝试执行以下操作:

  • 打开 CMD 提示符
  • 激活虚拟环境
  • 将当前目录更改为我的项目文件夹
  • 本质上,我需要顺序执行以下命令:

    C:\Envs\djangorocks\Scripts\activate
    cd "D:\GitHub\steelrumors"
    
    Run Code Online (Sandbox Code Playgroud)

    我找到了这个链接,但是创建如下快捷方式没有给我带来任何好处(只是在当前活动目录中显示一个简单的 CMD 提示符):

    cmd \k "C:\Envs\djangorocks\Scripts\activate" & "cd "D:\GitHub\steelrumors""
    
    Run Code Online (Sandbox Code Playgroud)

    经过一段时间的搜索后,我仍然手动进行,任何帮助都是值得赞赏的。

    windows cmd batch-file

    1
    推荐指数
    1
    解决办法
    3570
    查看次数

    更新Windows文件夹中的所有git repos

    答案适用于 linux 命令行。我需要同样的 Windows 命令行。我使用this创建了以下内容,但我的代码不起作用。

    for /D /r %i in (*.*) do (cd %i && echo %i && git pull && cd ..)
    
    Run Code Online (Sandbox Code Playgroud)

    更新

    从@SevenEleven 的回答和@kostix 的评论来看,以下是有效的。

    for /D %%i in (.\*) do (cd "%%i" && git pull && cd..)
    
    Run Code Online (Sandbox Code Playgroud)

    或者

    for /D %%i in (*) do (cd "%%i" & git pull && cd..)
    
    Run Code Online (Sandbox Code Playgroud)

    windows git command-line

    1
    推荐指数
    1
    解决办法
    1528
    查看次数