現在の日付/時刻をclink / cmderプロンプトに追加する方法


12

私はかなりの幸せなユーザーだチャリンという音偉大経由cmderのパッケージ。私が見落としているのは、コマンドプロンプトを設定して現在の日付/時刻(および最後の終了コード、履歴番号bashなど)を表示する簡単な方法だけです。

誰かがこれを行う方法について正しい方向を教えてもらえますか?


Windowsだけを使用できますdate /tか?また、Windowsは最後の終了コードをに格納しますが%errorlevel%、shはを使用し$?ます。それらを試してください。
Bob

しかし、その出力をプロンプトに統合する方法は?実行date /t時間の長いコマンドを実行する前に毎回実行する必要はありません。
Zsolt Botykai 2014年

ああ。参照してくださいprompt /?、そこに日付と時刻のオプションがあります。繰り返しますが、これはWindowsの標準のコマンドプロンプトです-clinkやcmderが何をするのかわかりません
ボブ

回答:


9

このプロンプト設定を試してみてください(例のみ、「プロンプト印刷」内でコンソールアプリケーションを呼び出す方法が示されています)。注意!ConEmuでのみ機能します。

prompt $p$s$e]9;7;"cmd /c echo (%DATE% %TIME%)"$e\$g

しかし、ボブが言ったように、もっと簡単な方法があります:

prompt $p$s$d$s$t$s$g

そしてのためcmder、あなたが供給を編集する必要がありますinit.batそれはプロンプト設定を定義して。


cmderの場合、プロンプト設定を編集するための推奨される方法はで%CMDER_ROOT%\config\user-startup.cmdあり、ではありませんinit.bat
ウェグリー2016年

Cmderを使用$tしたwin7で、追加するとうまくいきました:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Benj

@wegryこの%CMDER_ROOT%\config\user-startup.cmdファイルは私の構成に影響を与えていないようです。多分私はそれを間違っていたのでしょう。
ベンジ

@Benj最初はうまくいかなかったようですが、後で再起動するとうまくいきましたか?何が機能し始めたのか、私は不思議に思っています。
wegry

2
2018年に私prompt cmd /c echo ($t$s) :$p$guser-profile.cmdファイル(windows10)への追加に取り組みました。
エドウィン

10

が提供する答えマクシムスは、のために有効ではありませんcmder 1.3+

カスタマイズした定義(ソース)を使用して、cmderフォルダー内に.luaファイル(例:)を作成する必要があります。my_prompt.lua config

私のカスタマイズの下:

function custom_prompt()
  cwd = clink.get_cwd()
  prompt = "\x1b[1;32;40m{cwd} {git}{hg} \n\x1b[1;30;40m{time}\n{lamb} \x1b[0m"
  new_value = string.gsub(prompt, "{cwd}", cwd)
  add_time = string.gsub(new_value, "{time}", os.date("%x - %X"))
  clink.prompt.value = string.gsub(add_time, "{lamb}", "λ")
end

clink.prompt.register_filter(custom_prompt, 1)

そして、これが結果のプロンプトです

C:\
03/25/17 - 20:56:14
λ

Luaマニュアルで時間出力のその他のカスタマイズオプションを見つけることができます


コメントが報告されたエラーの更新

function time_prompt()
    os.setlocale ("", "time")
    local cwd = clink.get_cwd()
    local prompt = "\x1b[1;32m{cwd} {git}{hg} \n\x1b[30m{time}\n{lamb} \x1b[0m"
    local new_value = string.gsub(prompt, "{cwd}", cwd)
    local add_time = string.gsub(new_value, "{time}", os.date("%x - %X"))
    clink.prompt.value = string.gsub(add_time, "{lamb}", "λ")
end

Maximusの答えは正しいですが、これが最良の答えです!
AuthorProxy 2017年

D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) プロンプトは次のようになります。 `1:26.51)"←\ `
デビルズアドボケイト

うーん、それは何なのかわかりませんが、もう一度luaファイルを確認します。これは、投稿した古いコードとまったく同じではありません。今更新しているコードを使用しても問題ないかどうか教えてください。
グルーバー

Maximusの回答における@Edwinからのコメントは私にとってうまくいきました。 prompt cmd /c echo ($t$s) :$p$ginuser-profile.cmd
デビルズアドボケイト

これだけでは、cmderのgit bashプロンプトで何も変更されません。cmderは起動時にconfigフォルダー内のすべての.luaファイルを読み取って実行するはずですか?
AsGoodAsItGet

0

cmderの1行の変更。cmder \ config \ my_config.luaに配置します

function my_prompt_filter()
    cwd = clink.get_cwd()
    prompt = "\x1b[1;32;40m{cwd}{git}{hg} $> \x1b[33;40m"
    new_value = string.gsub(prompt, "{cwd}", cwd)
    clink.prompt.value = string.gsub(new_value, "{lamb}", "λ")
end

clink.prompt.register_filter(my_prompt_filter, 1)

結果:

C:\Users\user1 $>
C:\Users\user1 $> date
The current date is: 02.02.2018
C:\Users\user1 $>

0

ここでの解決策はどれも私にとってうまくいかなかったので、私は次の行をmyに追加してしまいました.bashrc

alias myprompt='export PS1="\[\e]9;9;"\w"\007\e]9;12\007\]\[\033]0;$MSYSTEM:${PWD//[^[:ascii:]]/?}\007\]\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\] \D{%T}\nλ "'

最後の部分\D{%T}は現在の時刻を示すものです(日付を気にしないでください。通常、タスクを開始してから経過した時間を知る必要があるためです)。

もちろん、すべてのgit bash端末でプロンプトが自動的に変更されるわけではありません。myprompt変更するには、デフォルトのプロンプトでコマンドを実行する必要があります。上記のエクスポートを.bashrcファイル内で実行しようとしましたが、エラーが発生しました。多分誰かがそれを回避する方法についてより良いアイデアを持っているでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.