WindowsのDOSプロンプトを使ってファイルの削除を行いたいです。
とは言っても、わがままな(?)機能を探しているのですが....
ファイル名
file1.log.001 ・・・ファイル容量 0KB
file1.log.002 ・・・ファイル容量 0KB
file1.log.003 ・・・ファイル容量 100KB
file1.log.004 ・・・ファイル容量 100KB
の内、ファイル容量0KBのみを探し出して消したいのです。
もちろんコマンドを直接打ち込むのであれば、
c:> del file1.log.001エンター
c:> del file1.log.002エンター
でいいことはわかっているのですが、バッチを組んで0KBのファイルのみを消したい。
また、残った003と004の名前も変えたいのです。
file1.log.003 → log001.log
file1.log.004 → log002.log
と番号を詰めて....
あるUnixベースのマシンで、日々ログを積み上げていくのですが、古いログファイルは削除
されていきます。
ftpで一旦、WindowsXPマシンでgetしてきて、上の作業をやらせたいのですが、実際は20
以上のログファイルがあります。
一回一回手打ちするのではなく、バッチで一気にやる方法を探しています。
Unixマシンからのgetは、バッチ内に
ftp -s:fileget.txt
を1行目に作成。
fileget.tstの中身は下記
--------------------------
open マシン名
ユーザー名
パスワード
get file1.log.001
get file1.log.002
get file1.log.003
get file1.log.004
get file1.log.005
get file1.log.006
get file1.log.007
get file1.log.008
get file1.log.009
:
by
-----------------------------
結果、Unixマシンには無いfile1.log.001というファイルが容量0KBでWindows内にできて
しまっています。
つたない文章でわかりづらいかもしれませんが、ご助言願います。
No.4ベストアンサー
- 回答日時:
No3です。
VMSはUnixと関係の無いOSです。メーカーのDECがもうずいぶん前にCOMPAQに吸収され、そのCOMPAQもHPと合併したので、マイナーになり情報もあまりないでしょうね。
; のあとの数字は世代番号じゃなかったでしたっけ。拡張子とは異なるので、扱いはFTPサーバーの処理次第だと思います。
No.3
- 回答日時:
fileget.tstの中身を、
--------------------------
open マシン名
ユーザー名
パスワード
prompt
mget file1.log.*
quit
-----------------------------
にすれば、file1.log.* に該当する存在するファイルだけがgetできます。
mget file*.log.* とかでも大丈夫。
バッチファイルで、ファイルサイズゼロのファイルだけを削除するのは、
for %%F in ( file1.log.* ) do if %%~zF == 0 del %%F
です。コマンドを直接打つときは%は1つだけ。
番号を振り直すバッチ処理は面倒だけど出来ます。mget がうまくいかなければ再度聞いてください。
この回答への補足
回答ありがとうございます。
なぜか、mgetコマンドが使えなかったんです...Unixマシンのせいなのか...
for %%F in ( file1.log.* ) do if %%~zF == 0 del %%F
については、明日以降、試してみます。
ありがとうございました。
バッチの中で for ~ ができるとは....20年以上前のPC-DOSのコマンド本にも載ってましたが、
これまで使ったことありませんでした。
WindowsのDOSプロンプトから for /? でもヘルプが現れて目からウロコです。
もちろん、教えていただいた記述でoKBのファイルを削除できました。
で、mgetですが、実際、会社でいろいろ確認してみました。
Unixベースマシンとしていたのは Open VMS VAX というOSでした。
ログのファイル名は FILE_NAME.LOG;04 って感じのファイルです。(末尾の2桁数字が複数ある)
Windowsからgetしようと試した結果が次です。
1.get FILE_NAME.LOG;04
とするとWindowsでは FILE_NAME.LOG ができて次の末尾05,06,07..のファイルは上書き
2.get FILE_NAME.LOG.04
とするとWindowsでは FILE_NAME.LOG.04 ができてる。次の末尾05のファイルもget OK。
3.mget FILE_NAME.LOG;*
とするとWindowsでは 1.と同じ結果
4.mget FILE_NAME.LOG.*
とするとWindowsでは 1.と同じ結果
なので、2.の記述でファイル1つづつを記述しないとならない状態です。
No.1
- 回答日時:
バッチ記述用の完全構造化言語のBSLスーパーバッチというソフトがあります。
WindowsPCで使用しますが、DOSプロンプト上で動作します。
#FSizeという「ファイルの大きさ」関数が使えますので、0バイトのファイルを消すことができます。
#IsFileという「ファイルの存在の判定」関数もあります。
もちろん、変数も使用できますので、希望通りのことができそうです。
一度使用したことがあるので、分からなければ聞いてください。
ヘルプは充実していますので、何かしらプログラムを作成したことがある人ならすぐ理解できると思います。
詳しくは、ダウンロードしてヘルプを参照願います。
参考URL:http://www.vector.co.jp/soft/dl/win95/util/se070 …
この回答への補足
BSLスーパーバッチを試してみました。
ヘルプ参照してみましたが、残念ながら、プログラム書いたことのない私にはチンプンカンプンでした...。
「変数」と「環境変数」の違い、if else文とfor文の使い分けさえわかりません。
プログラムは20年くらい前、PC-DOSのREXXで1つだけバイオリズム計算を自作したことがあるくらいです。
Excelのマクロも自動記憶を使うくらいで....
また、よかったら、ご助言ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- 数学 log底10真数1/75 ただし、 log底10真数2=0.3 log底10真数3=0.5とする 式 2 2022/05/30 22:51
- 数学 微分方程式の積分定数について 5 2023/07/13 08:39
- 数学 回答者どもがなかなか答えられないようなので、考えてみました。 ∫[0,π/2]log(sinx)/( 4 2022/08/31 16:30
- タブレット log撮影で撮った写真について。 こんにちはカメラ初心者です、わたしは今までほとんどの写真をlog撮 3 2023/07/04 01:42
- 数学 写真の数学の質問です。 常用対数ってのがいまいちわかりません。 log(10)3が、なぜlog(10 5 2023/06/10 14:07
- 数学 n乗はどうなったのでしょうか 1 2023/01/31 19:26
- 数学 O(N*logN)よりN=8の時、 O(N*logN) のOはオーダー記号と推察されますから 8*l 6 2022/04/06 18:54
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
対数の積分が解けません
-
eのlog2乗がなんで2になるので...
-
logの問題でルートが出てきたと...
-
logの読み方
-
1/2x を積分すると、(1/2)log|2...
-
log10の2とlog10の3(のおよその...
-
∫√x +1/x dx=2√x+log|x|+Cなの...
-
2のx乗=3 これどうやってときま...
-
eのlog2乗ってどうなりますか?
-
指数関数から対数関数の変形
-
インテグラルlog(x+3)dxの計...
-
log1-log1/2はなんでlog2になる...
-
2点間を結ぶ対数関数式は・・・...
-
logについて
-
数学の質問です。どうしてもわ...
-
e^log5ってなんですか?
-
数学で、log 0 =0 を発見したの...
-
この解き方を教えてください! ...
-
DOSコマンド DELを使って....
-
e^loga = a となる理由
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eのlog2乗がなんで2になるので...
-
logの問題でルートが出てきたと...
-
logの読み方
-
指数関数から対数関数の変形
-
1/2x を積分すると、(1/2)log|2...
-
対数の積分が解けません
-
eのlog2乗ってどうなりますか?
-
2のx乗=3 これどうやってときま...
-
logについて
-
かなりあやしい
-
e^loga = a となる理由
-
log10の1
-
log1-log1/2はなんでlog2になる...
-
x>0のときx/(1+x)<log(1+x)<xが...
-
微分
-
log(-1)=?
-
log10の2とlog10の3(のおよその...
-
∫√x +1/x dx=2√x+log|x|+Cなの...
-
logの計算がわかりません
-
fft
おすすめ情報