• ベストアンサー

時間が来たらフォルダの名前を変えたい

時間が来たら(例えば夜の12時とか)に時間指定でフォルダの名前を変更したいのですが、どうやって作ればいいのかよくわかりません。 ヒント的なものとか参考になるページとかあれば教えてください。 お願いいたします。

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

  • ベストアンサー
回答No.6

ANo.1, 3, 4, 5です。 週末でないとテストできないんで、 机上のお話になってしまうんですが、 最後のnet shareコマンドの直前に cacls "[変更後フォルダまでのパス及びフォルダ名]" /G Everyone:F /T ではどうでしょうか? 例)cacls "c:\EFGH_DATA" /G Everyone:F /T

daitaidait
質問者

補足

毎回親切にありがとうございます。 問題点が2点。 ・途中でYES/Noを求められる。→調べて解決しました。 ・実は下の階層のアクセス権の問題で共有許可はeveryoneにフルコントロール。NTFSアクセス許可はeveryoneに読み取りにしたいのです。(これだと両方ともフルコントロールになります。) それができないならNTFSアクセス許可はdomain usersだけ読み取りにしたいのですが、できますでしょうか?

その他の回答 (5)

回答No.5

ANo.1, 3, 4 です。 >無事できました。 無事解決してよかったです。 >共有名も一緒に変更したいのですが、スケジューラではできないでしょうか? バッチの最後の 「net share DATA_Folder=c:\EFGH_DATA」にて、 共有名を別の名前にしてやればOKです。 逆にローカルの名前は変更せず、 共有名だけを変える、と言うことも応用で可能です。

daitaidait
質問者

補足

ありがとうございます! 無事できました。 しかし、新たな問題が・・ フォルダの共有設定でアクセス許可が読み取りだけになってしまいます。元々はeveryoneをフルコントロールにしていたので名前を変更した後のフォルダもeveryoneをフルコントロールにしたいのですが、できませんでしょうか?

回答No.4

ANo.1, 3 です。 状況がなんとなく理解できました。 自分のローカルにある共有にしているしている フォルダの名前を変更したいという事ですね。 では、一行では無理なので 以下の内容でバッチを組んでタスクに指定して下さい。 net share [共有名] /DELETE /Y ren [変更元フォルダ名] [変更後フォルダ名] net share [共有名]=[変更後フォルダまでのパス及びフォルダ名] 恐らくは、外部からのアクセスが残ったままに なってしまっているため、フォルダ名の変更が失敗している のだと思われます。なので、 一時的に共有を強制的に解除してやれば実行できるはずです。 例)rename.bat ---------------------------------- net share DATA_Folder /DELETE /Y ren ABCD_DATA EFGH_DATA net share DATA_Folder=c:\EFGH_DATA ----------------------------------

daitaidait
質問者

補足

ありがとうございます。 無事できました。 しかし、自分としては共有名とフォルダ名が同じだったので一緒に変わると思っていたのですが、共有名はこれでは変わらないんですね・・ 共有名も一緒に変更したいのですが、スケジューラではできないでしょうか? 無知ですみません。

回答No.3

ANo.1 です。 >共有設定されているフォルダはダメなのでしょうか? 共有設定されているというのは、具体的には 自分のPC(Server)のローカルHDDの一部領域でしょうか? それとも、ネットワークドライブでしょうか? はたまた、ネットワークプレイスでしょうか? ローカルHDDであれば、共有設定は関係ないはずです。 また、ネットワークドライブでも可能だと思います。 「\\xxxxxxxx\xxxx」の形式で指定しているか、プレイスの場合は、 ネットワークドライブにする必要があります。 ※ コマンドプロンプトから目的のファイルへアクセスが出来ないため 常にネットワークドライブとして登録が望ましくない場合は、 割り当て)net use [割当先ドライブ:] "共有サーバ\共有フォルダ" [アカウントパスワード] /USER:[アカウント名] 解除) net use [割当ドライブ:] /delete これらコマンドにて一旦割り当てて、変更後に解除するという形になります。 例) net use Z: "SAMBA-SERVER\Folder" Password /USER:Administrator    net use Z: /delete

daitaidait
質問者

補足

ありがとうございます。 共有でも良いのであればやり方は記載どおりやったのですが、上手くいきません。 フォルダのあるのはローカルなので問題はないと思うのですが・・ 何が問題か判断が付きません。どうしてでしょうか??

  • Futosi
  • ベストアンサー率46% (23/50)
回答No.2

タスクを用いたくないのであれば、VBで簡単なアプリケーションを作成し、常駐させておいてタイマーオブジェクトを使用するという形も考えられます。 Shell_NotifyIcon APIを使用してタスクトレイに常駐させておき、内部で現在時刻を取得するタイマーオブジェクトを走らせて(精密な指定が必要ないのであればInterval=600000:1分おき などでも構わないでしょう)、任意の日時になったときにフォルダ名の変更なりファイル名の変更なりを行うようにすればよいかと思います。

参考URL:
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9804/idea/
回答No.1

方法があるとすれば・・・自分ならこうします。 ・「スタート」>「プログラム」>「アクセサリ」>「システムツール」より『タスク』を開く ・「スケジュールされたタスクの追加」を選択 ・何でも良いので適当にプログラムを選択する ・~~~の実行と、なるので「フォルダの変更」などと変える ・日単位を選択する ・開始時刻に変更させたい時間を選ぶ ・実行するユーザ名を入れ(普通は選ばれている) ・ログイン時のパスワードを入力する ・『[完了]をクリックしたときに詳細プロパティを開く』をチェック ・実行するファイル名を全て消し以下を入力する 【cmd /C "ren [変更前ファイル名] [変更後ファイル名]"】 ・開始には、変更したいファイルがある場所を指定する ・再度パスワードを入力する これで動くはずです。

daitaidait
質問者

補足

ありがとうございます。システムツールでもいいのですが、やってみましたが、上手くいきません。ひょっとして共有設定をかけているフォルダだからかもしれません。共有設定されているフォルダはダメなのでしょうか?

関連するQ&A

専門家に質問してみよう