• ベストアンサー

VBS パスに変数を入れたい

VBSでファイルのコピー処理を行いたいのですが、その日の日付によって、保存先フォルダを変更する必要があります。 例えば、下の保存フォルダ先を指定する文で、○○○を変数にしたりできたら良いのですが、この様にパスに変数を入れる方法ってありますか? strCopyFolder = "Y:\abc\○○○"

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

  • ベストアンサー
noname#258812
noname#258812
回答No.1

以下のように「&」で連結すればよいと思います <例> strFolderName = "○○○" strCopyFolder = "Y:\abc\" & strFolderName

mosa1518
質問者

お礼

迅速な回答ありがとうございます。 助かりました。

その他の回答 (1)

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.2

もちろんできます これは、パスの問題と言うより、文字列の連結ですね(汗) 手元にエクセルとかがあるなら、そちらで実験してから組み込むようにすると良いですよ VBSにエディターがないんで、俺はエクセルで作って試してます SubとEnd Subをコメントにしてメモ帳にコピペするって手間を思っても、あれこれ補完してくれるし、ある程度のヘルプも出る、何よりタイプミスを知らせてくれるのが大きいですしね で、コードだと   Dim strCopyFolder   Dim MyDate   MyDate = Format(nwo(), "yyyymmdd")   strCopyFolder = "Y:\abc\" & MyDate んな感じ VBSでFormatが使えなかった気がするんで、そんなときはFormatDateTime とかあったハズ

mosa1518
質問者

お礼

迅速な回答ありがとうございます。 意外と単純な構文で、できるみたいですね。汗 調査不足でした。 助かりました。

関連するQ&A

  • VBSについて

    VBSについて質問です。プログラミング初心者です。 既定フォルダ内のファイルを選択したフォルダ内にコピーするプログラムを組みたく、 色々調べながら作成してみましたが、うまくいきません。 症状として、選択したフォルダではなく、 プログラムを保存しているフォルダにコピーされてしまします。 選択したフォルダに保存するためには、どのようにすればいいでしょうか? また、下記コードがうまくいかない理由も解説もしてくださると大変助かります。 C:\strFrom ←既定のコピー元フォルダ C:\strTo  ←プログラム実行時に選択するコピー先フォルダ C:\VBS   ←プログラムを保存しているフォルダ ※ここにフォルダ名「strTo」で「strFrom」内のファイルが保存される Set objFS = CreateObject("Scripting.FileSystemObject") 'ファイルシステムオブジェクト作成 strFrom = "C:\strFrom" 'コピーするフォルダのパス Set shla = WScript.CreateObject("Shell.Application") 'Shellの呼び出し Set strTo = shla.BrowseForFolder(0, "フォルダを選択して下さい", &H1) 'パス取得 WScript.echo strTo.Items.Item.Path '取得パス確認 objFS.CopyFolder strFrom, strTo 'ファイルコピー

  • vbsスクリプトについて

    いつもありがとうございます。 実行するVBSファイルのカレントディレクトリを取得して、同じディレクトリにAフォルダがなければ Aフォルダを作成するといった下記処理を考えております。 Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Path) = True Then objFSO.DeleteFolder (Path) objFSO.CreateFolder (Path) Else objFSO.CreateFolder (Path) End If Pathの変数にAフォルダまでのフルパスを入れたいのですが 実現できるソースをアドバイスいただけませんでしょうか。 Path = objFSO.CreateFolder (".\A") でパスは取得できるのですが、フォルダの存在チェックの前にフォルダが作られるため だめでした。。 宜しくお願い致します。

  • WindowsのPATHの設定と有効性について

    Windows10での環境変数のパス指定はコンパネ→システム→システムの詳細設定→環境変数と進んで環境変数PATHを編集して指定することができます。確認したのですが、確かにそうなっています。スペルミスも発見できません(昔と違って表のようになってます)。それを指定した後、パワーシェルでその新規に指定したパスでの実行ファイルを入力しても実行しません。実行ファイルが見つからないというメッセージです。 環境変数PATHがどうなっているか調べるためにコマンドプロンプト(パワーシェルじゃないもの)でPATHコマンドを入力してみると確かに指定されていません。指定したフォルダが入っていないのです。 設定しているのに、設定されていないようになっている理由が不明です。なせ有効にならないのだろうと思うのですが。例えばフォルダ名が.abcのように隠しファイルのようなドットが先頭に入っているとダメなのでしょうか。確かに設定されているのに、何かの理由で有効になっていない理由が知りたいのですが。そして有効化したいのです。よろしくお願いします。

  • VBSについて

    いつもありがとうございます。 初歩的すぎる質問で申し訳ありません。 調べたらすぐわかると思うのですが、急ぎである為、調べるのと並行して質問させて頂きます。 現在VBSでスクリプトを作っているのですが、わからない点があります。 仕様としては他に処理がありますが、わからない箇所のみ記載させて頂きます。 ----------------------------------------------------------- // 変数セット strFile = "C:\test.dat" ' ファイルのパスを入力 // ファイルを実行 objShell.Run "notepad strFile", vbNormalFocus, False ----------------------------------------------------------- ↑上記にてノートパッドを起動して変数 "strFile" のファイルを開きたいです。 パスを直接指定すると上記方法でよかったと思うのですが この場合、どのように書けば動作するでしょうか。。 また、違う方法があればアドバイス頂きたいです。 教えて教えてで申し訳ありませんが、宜しくお願い致します。

  • 絶対パス、相対パス、環境変数の概念が掴めない

    絶対パス相対パス環境変数についていまいち概念が掴めないのでどなたかご教示いただけないでしょうか? 絶対パスというものは指定のフォルダなどへの行き道をしていしたもの、相対パスはある程度のものだけきじゅつしてあるしか認識できておりません。 ググって探してみてもいまいちいい内容がなくて・・・ 何かいい知識の身につけ方があったら教えてください。 あと例えばCGIを使うためにActivePerlなどを入れたときに絶対パスで指定する方法があるとか言うのはどういった意味なのでしょうか?

    • ベストアンサー
    • Perl
  • vbsでゴミ箱への移動

    こんにちわ。 vbsであるフォルダ内のファイルを全てゴミ箱に移動させたいのですが ゴミ箱のパスはどう指定したらいいのでしょうか。 初心者的質問ですみません。

  • バッチでのレジストリPath環境変数方法

    バッチでのレジストリPath環境変数方法 お世話になっております。 レジストリのPath環境変数をバッチで変更しようとています。 バッチ処理の動きとしては、下記の処理をするバッチを 作りたいのですが、上手くいきません。 ≪処理≫ 1、reg queryで、指定されたPath設定を検索 2、if errorlevel ~ 構文で   if errorlevel 1 goto tran1   goto tran2     2-1、指定されたPath設定がなければ、3へ。   2-2、指定されたPath設定があれば、 4へ。     (指定されたPath環境変数は設定済み)    3、reg addで、Path環境変数を変更する 4、次の処理実施   (指定されたPath環境変数は設定済) 具体的な処理内容は、下記のような記述をしてます。 ≪バッチ内容(例)≫ @echo off reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path | findstr /i "C:\Program Files\navnt" if errorlevel 1 goto tran1 goto tran2 :tran1 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path /t REG_EXPAND_SZ /d "%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\navnt" /f :tran2 echo 次の処理へ しかし、実行すると、全てTran2へ行く処理になってしまい、Tran1への処理になりません。    ※reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path | findstr /i "C:\Program Files\navnt"  | findstr /i "C:\Program Files\navnt" 箇所の、findstr が上手く機能してないと思ってます。   オプションもいくつか追加して試しましたが、上手くいきませんでした。  (試)  findstr の /c:文字列 を追加  ⇒ 結果、NG ~ | findstr /i /c:"C:\Program Files\navnt" findstrの記述が原因と思いますが、 ●tran1の reg addへ飛ぶ処理の記述をご教授頂けますか? 宜しくお願い致します。

  • VBSでサーバからのファイルコピーができません

    下記ソースについて、コピー元ファイルがDやCドライブにあるものは 指定したコピー先にファイルを貼り付けることができるのですが、 コピー元がサーバー上である場合、指定したコピー先にファイルが 貼りつきません。何か特別な処理等が必要でしょか? ご教授ください。 Dim fs Dim msg Dim f Dim copyFrom copyFrom = Array("D:\VBS\", "D:\VBS\AB\") Dim Ar Const copyTo = "D:\VBS\コピー先\" Do '日付入力のインプットボックスを出力 hizuke = InputBox("日付を入力してください。" & vbCr & vbCr & "例)2000-01-01") 'インプットボックスの入力値が空白である If hizuke = "" Then '日付入力を促すメッセージ出力 MsgBox "日付を入力してください。" Exit Do End If 'インプットボックスの入力値が10文字である If Len(hizuke) = 10 Then 'エラーが発生しても次の処理をすすめる On Error Resume Next '指定した日付の確認ダイアログを表示 msg = MsgBox(hizuke & "でよろしいですか?", vbYesNoCancel) '日付の確認ダイアログでYesを選択 If msg = vbYes Then For Each Ar In copyFrom MsgBox(Ar) 'ファイルオブジェクトを作成 Set fs = CreateObject("Scripting.FileSystemObject") 'コピー元フォルダに存在するファイルを読み込む For Each f In fs.GetFolder(Ar).Files '指定した日付を含むファイル名を検索 If InStr(f.Name, hizuke) > 0 Then MsgBox(copyFrom & "フォルダ") MsgBox(f.Name & "名前") fs.CopyFile Ar & f.Name, copyTo End If Next Next Exit Do Else Exit Do End If Else MsgBox("入力値が不正です。") End If Loop

  • vbs ファイル検索後、任意の場所にコピー

    vbsにて、以下のようなことを実現したいのですが、よくわからないので、ご教授願います。 ・実現したいこと インプットボックスに検索したいファイル名を張りつけて、検索対象ディレクトリ配下から、ファイルを任意の場所にコピーしたい。 コピー参照元は、3つ別々のディレクトリ配下の中から、一つ指定して、検索としたい。 対象ファイルが見つかったら、保存先をフォルダを指定できるダイアログを表示して、任意の場所にコピーしたい。 vbsでの作成方法がよくわからないので、ご教授いただければ助かります。宜しくお願いいたします。

  • アドレス欄にパスが出ない!!

    会社のPC(Win2000)なのですが・・・ フォルダを開くと、「アドレス(D)」というところにパス(例えばABCというフォルダの下のDEフォルダのさらに下のFGというフォルダを開くと「ABC\DE\\FG」)が出ていたのですが、あるときから出なくなり、開いているフォルダ名(FG)とだけ表示されるようになりました。 どうすれば元通りパスが出るようになるでしょうか?

専門家に質問してみよう