やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

秀丸ファイラで一発ファイル作成(shインラインできなかった)

Linuxコマンドを使って日付ファイルを作成したかったができなかった。

前回まで

PowerShellで日付ファイル作成したが、動作が遅かった。

秀丸ファイラで一発ファイル作成(PowerShellインライン版) 秀丸ファイラで一発ファイル作成(PowerShellスクリプト版)

今回

Linuxコマンドで実装してみようと試みるも、出力先ディレクトリの指定ができなかった。秀丸ファイラのブックマーク/ツールからカレントディレクトリを渡すことができない。

対象環境

コマンド

環境 コマンド
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で現在のディレクトリを渡したいが、それを受け取りファイル出力するコマンドが書けなかった。

所感

できれば秀丸ファイラのブックマーク/ツールにインライン・コマンドを割り当てて実行したかった。次回、できなかった経緯を詳しくやる。