• 締切済み

gawkの記述

あるフォルダ内にあるtext01****.cvsというtextという文字で始まる ファイルが幾つかあって、最新のファイルのみを指定のフォルダの aaa.csvにコピーするバッチを作っています。 gawkを使ってバッチファイルを作っています。 dir /b /o-d text* | gawk '{system("copy " $1 " c:\\ikou\\aaa.csv"); exit}' という具合。 windowsNT4.0 wsやwindows2000 pro では有効に使えますが windowsNT serverでは動作しないようです。 NT4.0serverのOSに原因があるように思います。 どなたか、お分かりになりましたら教えてください。

みんなの回答

  • xiade
  • ベストアンサー率64% (88/137)
回答No.1

動作しない というのは具体的にどのようになりますか? 動作しない環境では dir /b /o-d text* の出力結果(の先頭)に ディレクトリが含まれていませんか。 dir /b /o-d /a-d text* ではいかがでしょうか。 もしくは、 ・ファイル名にスペースが含まれている ・実はアクセス権限がない などが考えられます。

orewa2480
質問者

お礼

早速、ご回答有難うございます。 >dir /b /o-d /a-d text* ではいかがでしょうか。 でうまくコピーされました。

関連するQ&A

  • gawkの使い方

    windows7 32bitパソコンのCADで使っているマクロプログラムが64bitでは動きません。 ネットなどで調べてみると【jgawk】は16bitのため64bitでは使えないことが分かりましたが、マクロプログラム修正の仕方が分かりません。 (下記プログラム内容の抜粋) 64bitでは『gawk』が使えることが分かりましたが、単純にjgawk→gawkに書き換えて、“gawk.exe”を指定フォルダに置きましたが動きませんでした。 他にどの部分をどのように書き換えればいいか分からず困っております。 このようなことについては素人ですのでどなたか教えていただけないでしょうか。 ------------------------------------------ let count 0 let X_AXIS 0 let Y_AXIS -12.5 let N_BAN 0 let O_BAN 0 let page 0 DRAWING_SCALE 1 first_page read 'ファイル名を入力してください' d_file copy_file d_file del_old "C:/Temp/data2" load subpart (c_dir+'macro/buhin-a') 0,0 let page 1 run (c_dir+'bin/jgawk ''{ printf "%9s%2s%32s%15s%5s%45s%2s\n",$1,$2,$3,$4,$5,$6,$7}'' C:/Temp/data2> C:/Temp/data') ------------------------------------------

  • awk と gawk の書き方の違い

    PCでAWKコマンドを使いたくてgawkを使ってみたのですが、 やっぱりawkのような書き方では上手く実行できないみたいです。 gawkのバージョンは v3.1.6です。 コマンド (awk) awk -F, '{printf("copy aaa\%s bbb\%sn",$0,$0)}' list.txt 単純にDOSのバッチをファイルから作りたいだけなのですが・・・gawkではどのように書けば良いのか教えてください。お願いします。 仕事でUNIXを使っていたのですがPCに移行するという話がでていて、今までのunixコマンドをPCで動くようにソースを書き直して行かなくてはならないのにパスを『/』から『\』にしただけでは全く動きませんでした。やっぱりUNIXのawkでは出来てPCのgawkでは出来ないこともあるのでしょうか?それとも書き方の問題でしょうか??

  • gawk複数ファイルを同ファイル名でフォーマットする方法

    gawk複数ファイルを同ファイル名でフォーマットする方法 gawkを使いcsv形式のファイルをjson形式のファイルにフォーマットしようと考えています。 簡単に説明しますと、 ●csvファイル test1.csv test2.csv test3.csv ↓↓↓↓ ●jsonファイル xxx-test1.json xxx-test2.json xxx-test3.json という風にフォーマットさせたいのです。 現在、 jsonファイル出力後の記述を ●aaa.awk BEGIN { FS = ","; printf("{"); } { printf("%s,%s,%s,%s", $1,$3,$4,$5); printf("],"); } END { printf("}"); } このようにし ●コマンドライン gawk -f aaa.awk test1.csv > xxx-test1.json これで一ファイルずつのフォーマットはできたのですが、 ファイル数が複数あり面倒なため、一気にフォーマットしたいのです。 その方法をご教授お願い致します。

  • robocopyについて

    robocopyについて バッチコマンド robocopyについてです。 上記コマンドを用いて2008サーバーでバッチを作成したいのです。 条件は以下の通りでファイルをコピーするバッチの作成方法を教えてください。 コピー先にファイルがある場合は上書きメッセージを出さずに実行できるようにしたいです。 また、robocopyはcopyコマンドよりもコピーが早いとも聞いたことがあります。 そのへんも教えていただけるとすごく助かります。 コピー元 sever1\folder1\folder2\aaa.txt コピー先 sever2\folder13\folder4\aaa.txt どなたか詳しい方よろしくご教示願います。

  • バッチファイル作成方法

    バッチファイルを作成してファイルの結合(csvファイル)を行おうとしています。 ですが下記のような状況になってしまいどうにかならないかと思っています。 ***1.csv ***2.csv ***3.csv ***1.csv というような順番でデータがフォルダに転送されきてしまいます。 「1,2,3」までならば結合のバッチファイル作成が可能なのですが、 「1,2,3」の後に再度「1」のファイルが同フォルダにきた時には どのような文にすればイイのかお教え頂けますでしょうか。 下記に結合の文を記させて頂きます。 copy ***1.CSV+***2.CSV+***3.CSV+***_ADDALL.CSV d:\***\***_ALL.CSV 初めてバッチファイルというものを作成するので不明な点が多いのですが、宜しくお願い致します。

  • notepad++の実行について

    今日は! Dirの変更について質問いたします。 Q1)notePad++のLight_Exploreのなかで、フォルダが表示されていますが  このホルダーをカレントDirに設定する方法はありますか?  注)フォルダをクリックしましたが、このフォルダ以外のDirがカレントDirになっております。 Q2)実行ICONをクリックしまして、『ファイル名を指定して実行』からバッチファイル  (例えば、AAA.bat)を指定し、その後AAA.batを実行しますか、機能しません。  バッチファイルの実行は出来ないのでしょうか。  注)consoleからは、このバッチファイルの実行はできます。 以上、宜しくお願いします。

  • バッチファイル作成で又また困っています。

    ・質問No (No.2233751)でCSVファイルの結合でお世話になったyazaemonです。皆様に助けて頂いたばかりですが、上司より過去のLogもHOSTへFTPしたいので・・・出来ないかとの「とほほ」が入りまして、教えていただいた「FOR /F "delims="」を使い考えましたが挫折しています。すみませんがご教授お願いします。 〔内容〕  D:\data\CL_Logs\Logs\でLogsフォルダー内にYYYMMDD形式で名前の付いたフォルダー(2年分のフォルダー:365x2=約730個)が有ります。そのフォルダー内には、それぞれ300件以上のCSVファイルが有ります。今後の日付でのCSVファイルの結合とFTPは助けていただいてバッチシOKとなりました。  今回はLogsフォルダー下の過去の日付のフォルダー(例:20050505)内の300件以上のCSVファイルの内容を結合した2005050.CSVを作成し、FTPすると言うものです。  〔ヘナチョコ未完成バッチ〕 @echo off setlocal set TARGET_DIR=D:\data\CL_Logs\Logs cd /d %TARGET_DIR% dir /ON /B > dirlist.dat FOR /F "delims=" %%i in (dirlist.dat) do type "%%i" >>dir.csv ---ここで行き詰まりです。 Logsフォルダーにdir.cvsを作りそれをFORコマンドで利用しと思い試しましたが玉砕しました。理論適には多分dir.csvの1行目にcdしcsvファイル用のfilelist.datを ・dir /ON /B JL*.csv >filelist.datの様に作成し、 ・FOR /F "delims=" %%i in (filelist.dat) do type "%%i" >>??? の様にすれば結合したcsvが出来るのだろうと思いますが技量が全く足りません。又、>>???のファイル名をCSVが入っているカレントの過去の日付の(例:20050505.csv)にする方法とかは検討も付きません。  厚かましいお願いですが宜しくお願いいたします。

  • バッチファイルについて

    下記のようなバッチファイルを作りたいのですが 教えていただけませんでしょうか? 作成したい内容は、 PC起動時に自PCにある『XXX.CVS』ファイルを (C:\test\XXX.CVS) 共有ファイルサーバーのフォルダ内へ ファイル名に日付を付けて 『YYMMDD_XXX.CVS』としてコピーする。 (\\test\goo\YYMMDD_XXX.CVS)

  • DOSでフォルダごと移動するには

    WindowsNT 4.0を使用しておりまして、 夜間に起動するバッチファイルを作成しております。 1つのフォルダの中に、数個のフォルダに分かれておりまして、1つが数GBあります。 人が使用していない時間帯に、移動をかけたいのですが、 --------------------------------------------- move C:\DIR1 C:\TEMP (DIR1をC:\TEMPフォルダに移動したい) --------------------------------------------- MOVEコマンドで、フォルダの移動を試みたのですが エラーになり、正常に処理してくれません。 自分のクライアント(WindowsXP)では、 問題なく、移動できたのですが NTのDOSコマンドでは、ダメなのでしょうか?? ちなみに、フォルダ以下にあるファイルに対して MOVEコマンドを実行すると、正常に移動できました。 フォルダごと、サブフォルダも含めて 移動したい場合は、どのように記述すれば よろしいのでしょうか?お知恵をお貸しください。

  • 実行中にフォルダ共有を行い、そこにアクセスする。

    ちょっと困ってます。 件名の通りなのですが、コマンド打ちでフォルダ共有を行って、そこにファイルのコピーをしたいのですが、Dir関数で存在しないと言って来ます。 共有は、きちんと行っています。 フォルダ関係のシステム情報を再読み取りできれば可能になるのではないかなぁと思っています。(→でも、解決策は見つからず・・・) どのようにしたら、アクセスできますでしょうか? 共有は、バッチ内で行います。バッチのプロセスが終了次第、コピーを行うというものです。 マシン:Win95 VB ver:6.0 実施共有マシン:NT 4.0 server、Win2K server、win98 よろしくお願いします。

専門家に質問してみよう