2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Goでrenameコマンドつくってみた🌱

Last updated at Posted at 2023-04-23

Goでrenameコマンドつくってみた🌱

gitbashにて自作コマンドの追加をしてみました。
初心者🌱の自分が、自分のためにメモとして書いているのでご容赦ください。

主に使用したパッケージ

  • os
  • path/filepath
  • flag

今回のリポジトリ

PATHの通し方について

cdコマンドみたいな感じで自分のコマンドを使ってみたかった。
まあビルドしたexeファイルにパスを通すだけだったんですけどパスの通し方について勘違いしていたので参考文献を自分のために置いておきます。

面白かったところ

前回の記事で今回使ったosfilepath以外のところを書こうと思います。

flagについて

Usage.go
var option0 = flag.String("o","default","Option Description")
//引数1:オプションの名前 -o
//引数2:オプションの初期値 "default"
//引数3:オプションの説明 -hで出力される
var option1 = flag.Int("i",0,"int flag")
flag.Parse()//flagが定義し終わった後に宣言する必要がある
fmt.Println(*option0)
fmt.Println(*i)

すでに定義している変数にオプションの結果を代入するものもあるのでぜひ公式ドキュメントを読んでください。

出力結果
$ go run Usage.go
default
0
$ go run Usage.go -o hoge
hoge
0
$ go run Usage.go -i 1
default
1

os.Rename()について

func Rename(oldpath, newpath string) error

ということで、新しいpath名に変更できる関数です。今回はこれをディレクトリ内のファイルにかけている感じになりました。
それぞれのファイルにかける方法は、このあたりを読むとわかるかも。
前回の記事を読んでくれても嬉しいです。

感想

コマンドに引数を与えるというところでだいぶ時間を使ってしまった。
前回つかったときは、os.Argsだったが、今回はflag.Argsを使ってみた。違いが理解できた気がする。
ファイルのリネームは便利だが、使用する場所を間違えると怖いので使ってくれる場合は慎重に使ってほしい。

参考文献

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?