![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
csvtest.batをダブルクリックすると実行できるのですが、以下のコードにするとコマンドプロンプトが4つ起動し、全て「ファイル data.csvが見つかりません」となり実行できません。ファイルやマクロは全て同じフォルダにあります。
csvtest 1.bat は data1.csv、csvtest 2.bat はdata2.csvを読み込むはずなのでコマンドプロンプトで4つ全て「data.csvが見つかりません」となるのも気になります。
どなたか詳しい方教えてください。よろしくお願いします。
Sub バッチファイル複数実行()
'csvtest.bat, csvtest1, csvtest2, csvtest3 複数のバッチファイル
Dim batFileName, batFileName1, batFileName2, batFileName3 As String
'シェルオブジェクトの作成
Dim ShellObject As Object
batFileName = "C:\Users\Aiba\Desktop\work\データ\csvtest.bat"
batFileName1 = "C:\Users\Aiba\Desktop\work\データ\csvtest 1.bat"
batFileName2 = "C:\Users\Aiba\Desktop\work\データ\csvtest 2.bat"
batFileName3 = "C:\Users\Aiba\Desktop\work\データ\csvtest 3.bat"
Set ShellObject = CreateObject("WScript.Shell")
'シェルの同時実行
ShellObject.Run batFileName, 1, False '1にするとコマンドプロンプトを通常表示 False だと非同期(バッチファイルの処理が終了するまで止まることはない)
ShellObject.Run batFileName1, 1, False
ShellObject.Run batFileName2, 1, False
ShellObject.Run batFileName3, 1, Flase
End Sub
以下はcsvdata.bat の中身です。
@echo off
REM 初期化
SET INPUTSTR=
REM SET /P part_name="検索するデータを入力してください。"
for /f "skip=1 tokens=1*" %%i in (data.csv) do (
echo データ=%%i
powershell -File parts_eol_test.ps1 %%i%
)
pause
No.1ベストアンサー
- 回答日時:
問題点は2つあります。
1つはバッチファイル名が空白を含んでいることです。
その為
ShellObject.Run batFileName1, 1, False
は
"C:\Users\Aiba\Desktop\work\データ\csvtest 1.bat"
この時、C:\Users\Aiba\Desktop\work\データ\csvtestを起動し(拡張子がない場合、.batもしくは.exeが仮定される)
1.batがcsvtestへのパラメータとなってしまうことです。
csvtest.bat 1.bat
と同じことになります。
csvtest 1.batをcsvtest_1.batに変えてください。(2,3も同様)
2つめは、カレントディレクトリを
C:\Users\Aiba\Desktop\work\データ
にしていないことです。
ShellObject.Run前にC:\Users\Aiba\Desktop\work\データに移動する
必要があります。
修正すると
・・・途中省略・・・
batFileName = "C:\Users\Aiba\Desktop\work\データ\csvtest.bat"
batFileName1 = "C:\Users\Aiba\Desktop\work\データ\csvtest_1.bat"
batFileName2 = "C:\Users\Aiba\Desktop\work\データ\csvtest_2.bat"
batFileName3 = "C:\Users\Aiba\Desktop\work\データ\csvtest_3.bat"
ChDrive "C:"
ChDir "C:\Users\Aiba\Desktop\work\データ"
Set ShellObject = CreateObject("WScript.Shell")
・・・以降省略・・・
のようになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
{ CONTROL Forms.Label.1}が...
-
Version Control on Unity
-
Processingについて
-
テキストファイルの1行目のみを...
-
Google ColaboでGUI作成
-
AIの登場でプログラマーたちが...
-
16x16のスプライトフォント
-
VBSでテキストファイルの2行目...
-
Python... 環境設定 初心者です...
-
ExcelVBAでFormulaR1C1を列範囲...
-
HTMLソースが表示のページのも...
-
Arduinoに関する質問
-
大学のゼミのレポートがムカつ...
-
バッチファイルが保存されてい...
-
プログラミングサイトについて。
-
プログラミング未経験者(殆ど未...
-
VBA 電話番号の正規表現について
-
Pythonって何を意識した言語な...
-
htaccessで特定のディレクトリ...
-
ITパスポートの勉強をしていま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】300万件越えCSVか...
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
ファイル名を変数で書きこむfwr...
-
VB.netでShellExecuteがしたい
-
EXCEL→CSV保存時のダブルクォー...
-
複数のファイルをまたぐエクセ...
-
【C#】 csvファイルをバイナリ...
-
VBAで複数のCSVからレコードセ...
-
pythonでリストをCSVに出力する...
-
rubyを用いたCSVファイルの分割...
-
CSVデータの文字列置換
-
エクセルVBA Application.GetSa...
-
Rubyを使用してcsvファイルを処...
-
パイソン文法で ファイルオープ...
-
vbaマクロについて 次のような...
-
CSVファイルの比較と結果の取得...
-
fortranでデータの抜き出しをし...
-
pythonのこのエラーがわかりません
おすすめ情報