xfce4-terminal我在通过 Windows 任务栏上的按钮从 VcXsrv 下的 WSL 安装启动时遇到了一些困难。完成后,除了 xfce4-terminal 之外,我不需要任何 DOS 框/控制台/终端。我已经可以使用了,但是它太丑了。有人有更干净的方法吗?
这是我所做的工作:我在桌面上使用此目标创建了一个 Windows 快捷方式(全部在一行中,为了便于阅读,用换行符分隔):
\nC:\\Windows\\System32\\wscript.exe\n \\\\wsl$\\Ubuntu-20.04\\home\\peter\\bin\\windows\\startTerminal.vbs\nRun Code Online (Sandbox Code Playgroud)\nstartTerminal.vbs灵感来自10 Ways To Run Batch Files And Hide The Console Window \xe2\x80\xa2 Raymond.CC(少数不需要为此安装单独程序的解决方案之一!),它包含:
CreateObject("Wscript.Shell").Run "C:\\Windows\\System32\\wsl.exe -u peter --exec /home/peter/bin/windows/startTerminal.sh",0,True\nRun Code Online (Sandbox Code Playgroud)\n并startTerminal.sh包含:
export DISPLAY=localhost:0.0\nxfce4-terminal --command=/bin/zsh\nRun Code Online (Sandbox Code Playgroud)\n尽管我在 ~/.zshrc 中设置了 DISPLAY 环境,但显然需要设置 DISPLAY。除非您运行登录 shell,否则 wsl.exe 显然不会执行此操作。
\n一旦所有这些都正常工作,我可以将快捷方式拖到任务栏并单击那里。
\n我数数3,三个文件合作来实现这个简单的目标?我可以在不安装外部程序的情况下将其限制为一两个吗?
\n我想从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"文件.
如何从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) 我尝试使用 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) 这个问题基于 @ZaLiTHkA\ 对运行 cmd 命令顺序问题的接受答案的答复,如下所示。
\n\n\n\n\n只是为了清楚起见:您应该注意
\n&此处的单个符号明确表示实时命令提示符。当通过传递要作为脚本执行的字符串(快捷方式、批处理文件等)来运行命令时,则&&需要 double \xe2\x80\x93 ZaLiTHkA Apr 3 \'14 at 20:28
&&运行脚本命令(即快捷方式或批处理文件)真的有必要吗?我发现我仍然能够运行一个简单的命令,例如:cmd /k echo foo & echo bar在运行窗口中并执行同一目标/命令的快捷方式,没有问题。希望有任何澄清或文档明确说明为什么以及是否 &&实际上是批处理脚本的推荐方法,因为它似乎也&可以工作。
&&注意:这不是一个区分和定义之间差异的问题&,而是为什么需要 && 正如@ZaLiTHkA\'s 非常明显的赞成评论所指出的。
在 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 命令,则这是可能的。但我不知道如何实现。如果需要更多输入,请告诉我。
我正在设置一个 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) 批处理文件只有两行:
c:\program.exe ...
pause
Run Code Online (Sandbox Code Playgroud)
但是"程序"完成后暂停不运行...我没有看到"按任何关键信息":(
如果我在第一行上移动暂停,那么它就会神奇地起作用.
我正在尝试执行以下操作:
本质上,我需要顺序执行以下命令:
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)
经过一段时间的搜索后,我仍然手动进行,任何帮助都是值得赞赏的。
此答案适用于 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 ×6
batch-file ×4
cmd ×3
command-line ×2
browser-sync ×1
c++ ×1
git ×1
java ×1
javascript ×1
jekyll ×1
node-sass ×1
node.js ×1
nodemon ×1
python ×1
subprocess ×1
winapi ×1
windows-subsystem-for-linux ×1
x11 ×1