我正在尝试使我的Visual Studio构建脚本执行一个重要的.bat文件.
这就是我现在想做的事情:
cd "F:\- Big Packets -\kitterengine\Common\" Template.bat
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我必须这样做才能使它工作:
cd "F:\- Big Packets -\kitterengine\Common\"
F:
Template.bat
Run Code Online (Sandbox Code Playgroud)
但是这很难添加到Visual Studio脚本中.
我怎么能在一行中做到这一点?
我实现了一个包含在PS1环境变量中的bash快速路径缩短器,它将工作目录缩短为更紧凑但仍然具有描述性的东西.我很好奇其他想法可能存在.
这是挑战:
创建一个bash函数_dir_chomp
,可以像这样包含在PS1中(插入换行符以便于阅读):
PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] $(
_dir_chomp "$(pwd)" 20
)\[\033[01;37m\]$(parse_git_branch)\[\033[01;34m\] \$\[\033[00m\] '
Run Code Online (Sandbox Code Playgroud)
"20"是最大长度的参数,作为软限制.这些是例子:
/usr/portage/media-plugins/banshee-community-extensions/files
变 /u/p/m/b/files
/home/user1/media/video/music/live-sets
成为~/m/v/m/live-sets
(注意〜字符作为$ HOME的替代)/home/user2/media
不会改变(不超过20个限额)/home/user1/this-is-a-very-long-path-name-with-more-than-20-chars
成为~/this-is-a-very-long-path-name-with-more-than-20-chars
(最后一个组件保持不变:软限制)/home/user1/src
变成~/src
($ HOME总是缩短)/home/user1/.kde4/share/config/kresources
变成~/.k/s/c/kresources
(注意保留前缀点)当前用户是user1.
它允许调用外部口译一样awk
,perl
,ruby
,python
但没有编译C程序或类似.换句话说:不允许使用外部源文件,代码必须是内联的.最短版本获胜.bash函数体的长度(和称为子函数)计数,表示:
_sub_helper() {
# this counts
}
_dir_chomp() {
# these characters count (between { and })
_sub_helper "foobar" # _sub_helper body counts, too
}
Run Code Online (Sandbox Code Playgroud) 我的办公室和家用电脑都有来自同一来源的Git Bash for Windows(Git for Windows,TortoiseGit附带),但Git Bash的提示在两台机器上都有所不同:
/c/path (branch)
都是绿色的(这就是我希望它如何),到目前为止,我被告知,这是PS1
变量,保存在~/.bashrc
文件中.但是,在两台计算机上,此文件都丢失(执行时会notepad ~/.bashrc
打开空记事本).
我迷失在这里.如果~/.bashrc
不存在,那么从Git Bash"知道"的地方,它应该在绿色提示中显示当前分支?为什么在第二台机器上不会发生同样的情况?
编辑:我也尝试比较c:\Program Files\Git\etc\
机器和Git Bash.vbs
文件内容的文件夹内容.在两台计算机上都是相同的,所以我更不知道,Git Bash的提示在两台计算机上都有所不同(以及如何解决这个问题).
几个答案(像这样,这个和这个)建议我,我应该寻找.bash_profile
和.bash_prompt
文件.不幸的是,我的两台计算机上都缺少这两个.
究竟是什么文件决定在Windows 7下?我应该在哪里寻找,以及PS1
变量值应该是什么,以便在两台机器上以绿色提示显示当前分支?
我希望 ChatGPT 记住过去的对话并进行一致(有状态)的对话。
我见过几个ChatGPT提示工程的代码。
有两种方法可以设计如下所示的提示(伪代码):
使用单个输入(便宜)<- 如果可能的话更好
堆叠所有以前的历史记录(昂贵,令牌限制)
def openai_chat(prompt):
completions = openai.Completion.create(
engine = "text-davinci-003",
prompt = prompt,
max_tokens = 1024,
n = 1,
temperature = 0.8,
)
response = completions.choices[0].text.strip()
return response
# 1. Use a single input
while True:
prompt = input("User: ")
completion = openai_chat(prompt)
# 2. Stack all of previous history (prompt + completion)
prompt = ""
while True:
cur_prompt = input("User: ")
prompt += cur_prompt # pseudo code
completion = openai_chat(prompt)
prompt …
Run Code Online (Sandbox Code Playgroud) 我想更改我的Anaconda Prompt User文件路径.目前如下:
我希望它改为:C:\ Users\u354590
我该怎么做呢?
我现有的anaconda版本是:
Python 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)]
Run Code Online (Sandbox Code Playgroud) 我已经解决了这个问题,并且发帖是为了让其他人免于我的痛苦。
在 Windows 10 上,
Python 已安装C:\Python
并添加到环境变量中,但无法正确运行程序。
输入python myscript.py
CMD 不会运行程序,但不会产生任何错误。
C:\Python\python.exe myscript.py
正确键入运行代码。
C:\Users\Username\AppData\Local\Microsoft\WindowsApps\python.exe
在 CMD 中导航到并键入del /f python.exe
.
位于 的文件C:\Users\MyUsername\AppData\Local\Microsoft\WindowsApps\python.exe
在PATH
. 这个文件只是在 Edge 中打开 Python 的下载页面。
您需要删除此文件或重命名它,但此文件夹中的项目受 Microsoft 保护。Error 0x80070780
如果您尝试使用文件资源管理器删除此文件,您会得到。要删除它,您需要以管理员权限导航到 CMD 中的文件夹,然后键入上述内容以删除此文件。
我希望这可以帮助别人。
我想从Windows中的命令提示符编译C代码.我已将环境变量添加到PATH中,我可以使用以下命令编译.cs文件:csc app.cs
没关系,但是如何编译app.c?
我正在执行命令提示符命令,如下所示:
string cmd = "/c dir" ;
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.Arguments = cmd;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
Run Code Online (Sandbox Code Playgroud)
如何获取命令的输出?
我知道要在命令提示符下显示所有文件(如果有)的备用数据流,这就是命令dir /R
.但是,如果我只想显示具有备用数据流的文件,我该怎么做呢?
如果命令的输出不以a结尾\n
,则后续的提示会立即显示:
$ echo -n hai
hai$
Run Code Online (Sandbox Code Playgroud)
我刚刚注意到一位同事的shell(zsh,它的价值)被配置为打印一个%
(背景和前景颜色反转为强调),然后\n
在这种情况下:
$ echo -n hai
hai%
$
Run Code Online (Sandbox Code Playgroud)
我也想这样做.我用Bash.这可能吗?如果是这样,我将添加到〜/ .bashrc中?
UPDATE
我花了几个小时了解gniourf_gniourf的解决方案是如何工作的.我将在这里分享我的发现,以防它们对其他人有用.
ESC[6n
是用于访问光标位置的控制序列导入器(http://en.wikipedia.org/wiki/ANSI_escape_code).
\e
echo
在OS X上使用时,它不是ESC的有效表示形式(https://superuser.com/q/33914/176942).\033
可以用来代替.
IFS是Bash的内部字段分隔符(http://tldp.org/LDP/abs/html/internalvariables.html#IFSREF).
read -sdR
看起来像是速记read -s -d -R
,但实际上"R"不是标志,它是(分隔符)选项的值-d
.我决定写作read -s -d R
以避免混淆.
双括号构造(( ... ))
允许算术扩展和评估(http://tldp.org/LDP/abs/html/dblparens.html).
这是我的.bashrc中的相关片段:
set_prompt() {
# CSI 6n reports the cursor position as ESC[n;mR, where n is the row …
Run Code Online (Sandbox Code Playgroud)