• ベストアンサー

WSH ドロップしたファイルのファイル名に作成日を

こんにちは WSHの質問です。 ドロップしたファイルのファイル名に作成日を追加するには どうゆう記述になりますでしょうか? Wscript.Arguments.Item  を使うまではわかったのですが それ以降さっぱりわからないです。 http://www.relief.jp/docs/wsh-get-files-name-wscript-arguments.html とかが参考にしているところです。 流れ的には次のような感じでしょうか? ドロップされた 個数を数える ファイルのフルパスを取得 ファイルの作成日を取得 ファイル名を書き換える よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

流れは合っています。 >ファイルのフルパスを取得 ドロップされた時点で、フルパスがWscript.Arguments(0)。。。に入りますので、特に処理は不要です。 >ファイルの作成日を取得 GetFileメソッドでファイルオブジェクトを得て、そのプロパティを見ます。 https://msdn.microsoft.com/ja-jp/library/cc428018.aspx >ファイル名を書き換える 上で求めたファイルオブジェクト f に対して、f.Move( 新しい名前 )

ch20090926
質問者

お礼

なんとか つくれそうです。 回答遅れました。 ありがとうございました。

関連するQ&A

  • WSHのCreateTextFileについて

    プログラミングを学び始めて数か月の初心者です。 WSHにて、VBscriptを用いてスクリプトを製作しているのですが、 メソッドの動きが理解できないので質問させていただきます。 【実現したい処理】 ドラッグアンドドロップでスクリプトファイルにテキストファイルをドロップすると、 テキストファイル名に「_admin」を追加したテキストファイルを新規で作成する。 CreateTextFileメソッドを利用する際、 新規作成するファイル名をフルパスで指定すれば作成できます。 または、GetBaseNameメソッドを使用せず、変数にファイル名を直接代入すれば作成できます。 ソースの様に、GetBaseNameメソッドを利用してファイル名を生成すると上手くファイルを作成くれません。 このソースの場合、カレントフォルダに新規テキストファイルを作成することはできないのでしょうか。 宜しくお願いします。 【ソース CreateFile.vbs】 Dim objFSO, Dim strArgument, strFileName, strFileNewName Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") strArgument = WScript.Arguments(0) strFileName = objFSO.GetBaseName(strArgument) strFileNewName = strFileName & "_admin.txt" objFSO.CreateTextFile strFileNewName set objFSO = Nothing 【/ソース】

  • WSHでファイルを読み込まない。。。

    WSHで2個以上のtxtファイルの中身を連結して1つのファイルにして 掃き出すというプログラムを作りました。 いったんは正常に動作をしたのですが、最近PCの乗り換えを行い、 それ以降まったく動作しなくなりました。。。 仕事で使うプログラムの一部なので困っています。 どなたかご教授ください!! OSはPCの乗り換えをする前も後もXPのSP2です。 var objArgs = WScript.Arguments; var xmldc = new ActiveXObject("Microsoft.XMLDOM"); xmldc.async = false; //読み込んだファイルの数が2個以上か数える。 if (objArgs.Count() < 2) {//1個の場合・・・ WScript.Echo("txtファイルを2つ以上選択してください"); } else { //2個以上のときの処理 } 上記のプログラムで、2個以上のファイルをドラッグアンドドロップ で読み込ませようとしても必ず、 "txtファイルを2つ以上選択してください" と表示されます。 なぜでしょう??

  • WSHを使ってファイルの作成日を変更できますか?

    WSH(Windows Script Host)を利用した処理についてですが、ある特定のファイルをコピーした後、そのコピーされたファイルの作成日を任意の日時に変更できるようにしたいと考えています。 日付の取得は可能なのですが、日付の変更も可能でしょうか? (WindowsXPを想定しています)

  • VBSを起動後にファイルをドラッグ&ドロップ

    [環境] Windows 7 お世話になります。 完全にお遊び程度の内容になりますが、 VBSでドラッグ&ドロップしたファイルのファイル名を取得するプログラムを 作成しているのですが、 検索してもそれらしき方法が見つからずヤキモキしています。 まだ起動していないVBSファイルに対してのドラッグ&ドロップする方法であれば 結構HITするのですが、そうではなく私がやろうとしているのは、 既に起動しているVBSのアプリにドラッグ&ドロップをしたファイル名を 取得したいのです。(ちなみに取得したいのはフルパス) 取得したファイル名はInputBoxか何かに表示する程度でいいのですが、 案外むずかしかったりするのでしょうか? ご回答よろしくお願いします。

  • [WSH] ファイルのコピーができない

    こんにちは。 次のようなスクリプトでFTPフォルダにファイルをコピーしようとしたのですが、カレントフォルダにファイルがコピーされてしまうようです。 どうすれば、FTPフォルダにファイルをコピーできるのでしょうか? var objShell = WScript.CreateObject("Shell.Application"); var objFolder = objShell.NameSpace("ftp://user:password@sitename/directory/"); objFolder.CopyHere("C:\\WINNT\\win.ini"); WScript.Sleep(6000); ※下記のページを参考にさせていただき作成しました。http://homepage3.nifty.com/aya_js/wsh/wsh25.htm

  • ファイル名からフォルダを作成するscript

    以前ここでタイトルのscriptを作っていただきsend toにいれて活用しています。 下記のように複数のファイルを選択した場合と単数の場合を別々に作ってあります。 そこでこれをひとつにまとめてどちらでも対応できるようなものにしたいのですが お知恵をお貸しください。 よろしくお願いします。 (Windows7Pro/64bit) // makefolder3.js fs = new ActiveXObject("Scripting.FileSystemObject"); args = WScript.Arguments; for (i = 0; i < args.Count(); i++) { basename = fs.GetBaseName(args(i)); path = fs.GetParentFolderName(args(i)).replace(/\\$/, ""); target = path + "\\" + basename; if (fs.FileExists(target) || fs.FolderExists(target)) WScript.Echo(target + "\n同名のファイル/フォルダがあります. 作成できません."); else fs.CreateFolder(target); } ------------ // makefolder.js fs = new ActiveXObject("Scripting.FileSystemObject"); arg = WScript.Arguments(0); basename = fs.GetBaseName(arg); path = fs.GetParentFolderName(arg).replace(/\\$/, ""); target = path + "\\" + basename; if (fs.FileExists(target) || fs.FolderExists(target)) WScript.Echo(target + "\n同名のファイル/フォルダがあります. 作成できません."); else fs.CreateFolder(target); ----------

  • WSH

    こんにちわ WSHで以下のような処理は可能でしょうか。 複数のコンピュータのローカルデータを ファイルサーバに保存する。 Windows NT 4.0 workstationになります。 処理イメージ (1)それぞれのコンピュータ名を取得する。 (2)取得したコンピュータ名と同じディレクトリを ファイルサーバに作成する。 (3)自分と同じディレクトリに、ローカルデータを保存する。 よろしくお願いします。

  • WSH_フォルダ内の処理について

    昨日から作成しているのですが、 新しく質問を立ち上げます。 下記のように、フォルダ内に格納してあるファイルを 取得できるのですが、フォルダ内で作成日時を見て 最新のファイル以外は削除させたい処理をやりたいです。 ファイル名を明示的に記載し比較はできるのですが、 フォルダ内の中から作成日時の最新のファイルを取得する っていうのができません。 下記ソースはイメージです。 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder("C:\test") For Each objFile In objFolder.Files If objFile.type = ファイルタイプ Then   上記ファイルタイプで最新の日付のファイルを出力 上記ファイル以外削除 Else  上記ファイルタイプが存在しなければ何も処理を行わないず フォルダ内のファイル一覧を取得 WScript.Echo " " & objFile.Name Wscript.Echo "NG" End If Next 調べているのですが、簡単なソースしか作れません。 お願いします

  • ファイルアップロード時にファイル名の絶対パスを取得を教えてください

    ファイルアップロード時にクライアント側のファイル名の絶対パスを取得する方法を教えてください。 $_FILESには絶対パスでなくファイル名だけしか入っていないのですがこの変数からは取得できないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • WSHで他のバッチを呼びその終了を待つ方法

    WSHでプログラミングをしています。 WSHを使う理由はWin上から簡単にメールを送信できるのでとりあえず選択しました。 で、WSHのバッチから、普通のDOSコマンドで記述したバッチを呼んで、そのバッチの結果出力されたログファイルをWSHのバッチでメールに添付して送信したいなどと思っています。 今は var ws = WScript.CreateObject("Wscript.Shell"); ws.run("tmp.bat"); こんな感じで「tmp.bat」という名のDOSコマンドのバッチを呼び出しているのですが、このコマンドは命令発行したらその命令が終了するのを待たず次の命令に進んでしまうようです。 なので、ログ作成とメール送信のタイミングが合わない状態です。 処理待ちする方法を教えてください。よろしくお願いします。

専門家に質問してみよう