システム時間抽出のためのBATバッチコード(バグ修正)
2022-01-08 14:37:57
通常、以下のコードは動作しますが、バッチ処理で0から始まるデフォルトの数字が8進数とみなされ、不正確な時刻が表示されます。
for /f "tokens=1,2 delims=:" %%i in ('time/t') do (
set/a xiaos=%%i
set/a fenz=%%j
)
上記のコードを使用して、もともとシステムの時間と分を抽出するために、次のように実行しました。
xiaos=9
フェンツ=18
しかし、今日は以下のような形式で抽出されています(同じマシン、同じシステム)。
xiaos=09
フェンツ=18
このため、後の計算に誤差が生じます。
長い間、バッチ処理に触れていなかったので、何が悪かったのかわかりません。アドバイスをお願いします。
bathomeの管理人からの回答
@echo off
for /f "tokens=1,2 delims=:" %%i in ('time /t') do (
set xiaos=%%i
set fenz=%%j
)
set xiaos=10%xiaos: =%
set fenz=10%fenz%
set /a xiaos=xiaos%%%100
set /a fenz=fenz%%100
echo %xiaos%
echo %fenz%
pause
完璧な解決策
問題が見つかりました。日付と時刻の書式は03,09です。数値計算や代入をすると、0から始まるので8進数とみなされ、08,09となると四捨五入が必要なので、エラーになる。そして07以下は丸める必要がないのでエラーにならない。
関連
-
Windowsのクリップボードに文字列や日付を出力するバッチ処理
-
ワンクリックで jdk 環境変数を設定するバッチコード
-
Windowsのバッチバットはローカルのmysqlに接続し、定式化されたデータを作成し、SQLファイルを実行します。
-
Windowsのcmdコマンドラインの入出力リダイレクト問題
-
Windowsの空のフォルダを検索するバッチプログラムのコード例
-
指定されたディレクトリからファイル名を一括で抽出します。
-
バッチ式再帰計算の実装コード N!
-
BATとHTMLのハイブリッドプログラミングの記述方法
-
フォルダバット内の全ファイルの個数と合計サイズの一括統計処理
-
バッチ処理でftpディレクトリにファイルをアップロードする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン