Linuxコマンドを使って日付ファイルを作成したかったができなかった。
前回まで
PowerShellで日付ファイル作成したが、動作が遅かった。
秀丸ファイラで一発ファイル作成(PowerShellインライン版) 秀丸ファイラで一発ファイル作成(PowerShellスクリプト版)
今回
Linuxコマンドで実装してみようと試みるも、出力先ディレクトリの指定ができなかった。秀丸ファイラのブックマーク/ツールからカレントディレクトリを渡すことができない。
対象環境
- Windows XP Pro SP3 32bit
- cmd.exe
- ConEmu
- 秀丸ファイラ 1.10
コマンド
環境 | コマンド |
---|---|
ConEmu(MinGW/msys) | date "+%Y%m%d%H%M%S%3N.py" | xargs touch |
ConEmu(Nyagos) | date "+%Y%m%d%H%M%S%3N.py" | xargs echo | xargs touch |
ConEmu(cmd) | C:\MinGW\msys\1.0\bin\date.exe "+%Y%m%d%H%M%S%3N.py" | xargs touch |
cmd | C:\MinGW\msys\1.0\bin\date.exe "+%Y%m%d%H%M%S%3N.py" | xargs touch |
実行環境次第で微妙に異なる。
環境のせいでエラーになったコマンド
ConEmu(Nyagos)
date "+%Y%m%d%H%M%S%3N.py" | xargs touch touch: cannot touch `20161208200730765.py\n': No such file or directory exit status 123
なぜか末尾に\n
(LF)がついているらしい。ファイル名に改行コードは付与できないからエラーになったのだろう。なぜか間にechoをはさむと解決した。
ConEmu(cmd)
date "+%Y%m%d%H%M%S%3N.py" | xargs touch touch: cannot touch `entered.\r': No such file or directory touch: cannot touch `date:': No such file or directory
date "+%Y%m%d%H%M%S%3N.py" | xargs echo | xargs touch touch: cannot touch `entered.\r': No such file or directory touch: cannot touch `date:': No such file or directory
entered.\r'やら
date:'やら、よくわからない。どこから出てきたのか。
date.exeを絶対パス指定すると解決した。Windowsのdateコマンドを参照していたのかもしれない。
cmd
>date "+%Y%m%d%H%M%S%3N.py" | xargs touch touch: cannot touch `入力された日付は受け付けられません。\r': No such file or di rectory touch: cannot touch `新しい日付を入力してください:': No such file or directory
Linuxのdateでなく、Windowsのdateコマンドが参照されたと思われる。Windowsのdateコマンドはフォーマットできない。
問題
出力先ディレクトリの指定ができない。
秀丸ファイラにて%V
で現在のディレクトリを渡したいが、それを受け取りファイル出力するコマンドが書けなかった。
所感
できれば秀丸ファイラのブックマーク/ツールにインライン・コマンドを割り当てて実行したかった。次回、できなかった経緯を詳しくやる。