拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1424858999/
【.cmd】 バッチファイルスクリプト %12 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1489207631/
それ以前の過去スレ
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc12.2ch.net/test/read.cgi/tech/1197881068/
%1 http://pc11.2ch.net/test/read.cgi/tech/1178281991/
【.cmd】 バッチファイルスクリプト %13 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
2018/11/21(水) 14:52:07.84ID:v84I4o+L
750デフォルトの名無しさん
2020/04/23(木) 17:31:56.25ID:P2MaiEJS751デフォルトの名無しさん
2020/04/23(木) 21:20:47.89ID:M8I+Acr1752デフォルトの名無しさん
2020/04/26(日) 18:05:24.10ID:FVxXRtXH 連番をつけるコードでまだ躓いています
hoge.txt
hogehoge.txt
を
hoge(1).txt
hogehoge(2).txt
としたいです
echo off & for %i in (*.txt) do (ren %i ???)
このはてな部分に連番を指定するためにインデックスを指定しないといけないと思うんですが、%i自体にはファイル名が入っていると思います。インデックスは取れるんでしょうか?
hoge.txt
hogehoge.txt
を
hoge(1).txt
hogehoge(2).txt
としたいです
echo off & for %i in (*.txt) do (ren %i ???)
このはてな部分に連番を指定するためにインデックスを指定しないといけないと思うんですが、%i自体にはファイル名が入っていると思います。インデックスは取れるんでしょうか?
753デフォルトの名無しさん
2020/04/26(日) 18:36:58.48ID:FVxXRtXH バッチでset /aなどのオプションがありますが、/aは計算を伴う場合に使うそうです。
この/aに意味はあるのですか?
何らかの単語の略だと覚えやすいんですが。
この/aに意味はあるのですか?
何らかの単語の略だと覚えやすいんですが。
754デフォルトの名無しさん
2020/04/26(日) 18:40:50.40ID:Pfsg7A5O その程度ぐぐれば出てくるでしょ
インデックスのカウント用変数が必要+変数の遅延展開
丸括弧のエスケープが必要
aはarithmeticの略
インデックスのカウント用変数が必要+変数の遅延展開
丸括弧のエスケープが必要
aはarithmeticの略
755デフォルトの名無しさん
2020/04/26(日) 20:15:42.23ID:cczyU4e/ @echo off & set n=1& chcp 65001 > nul
for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x "%%a%%"
goto :eof
:x
ren %1 "%~n1(%n%)%~x1" & set /a n+=1
for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x "%%a%%"
goto :eof
:x
ren %1 "%~n1(%n%)%~x1" & set /a n+=1
756デフォルトの名無しさん
2020/04/26(日) 22:00:20.95ID:zKIVBOto 1Point ノウハウ
dir ですべてのファイル、フォルダを表示したい場合は
dir /A
dir ですべてのファイル、フォルダを表示したい場合は
dir /A
757デフォルトの名無しさん
2020/04/26(日) 22:18:32.20ID:DxwpR+0O 普通に do call :x "%%~i" でいいと思うんだが何故いちいち set a=%%i とかしてるの?
何か理由あるん?
何か理由あるん?
758デフォルトの名無しさん
2020/04/26(日) 22:22:15.53ID:YV1WqKFq >>757
ファイル名に「%」入ってるとマズくない?
ファイル名に「%」入ってるとマズくない?
759デフォルトの名無しさん
2020/04/28(火) 05:49:29.43ID:ceHl0duT シェルスクリプトってお手軽省略表記にこだわりすぎるあまり
エスケープ処理が複雑化しバグりやすくなって本末転倒だよな
エスケープ処理が複雑化しバグりやすくなって本末転倒だよな
760デフォルトの名無しさん
2020/04/28(火) 05:57:02.60ID:l2PF55i3 そんなところで躓く能なしは、他の言語で書いても同じだよ
761デフォルトの名無しさん
2020/04/28(火) 13:01:40.55ID:DKHJb1hS 他の言語でもエスケープは必要なことはあるし同じこと
ただbatのように自身を置換して逐次実行するするようなことは
eval系の命令を使う場合なのでほぼ無いに等しいので意識されないだけ
ただbatのように自身を置換して逐次実行するするようなことは
eval系の命令を使う場合なのでほぼ無いに等しいので意識されないだけ
762デフォルトの名無しさん
2020/04/28(火) 16:44:00.76ID:3RXW9/E3 要するに分かりにくい
ここで初心者にイロハから質問されてもレスがしにくい
リネームソフトでも使え
ここで初心者にイロハから質問されてもレスがしにくい
リネームソフトでも使え
763デフォルトの名無しさん
2020/04/28(火) 17:37:46.72ID:7TaGv6sC >>759
シェルスクリプトでエスケープ処理が複雑なんて
したことがないんだがどういうケース?
むしろバッチファイルのほうがややこしすぎる
バッチファイルでダブルクォートはいつつけるか言える?
スペースが含まれたファイル名とか
バッチファイルでこれの出力結果は
echo "C:\Program Files"
↓これです。(ダブルクォート含む)
"C:\Program Files"
シェルスクリプトでエスケープ処理が複雑なんて
したことがないんだがどういうケース?
むしろバッチファイルのほうがややこしすぎる
バッチファイルでダブルクォートはいつつけるか言える?
スペースが含まれたファイル名とか
バッチファイルでこれの出力結果は
echo "C:\Program Files"
↓これです。(ダブルクォート含む)
"C:\Program Files"
764デフォルトの名無しさん
2020/04/28(火) 18:05:03.26ID:3RXW9/E3 どういうケースって、すぐ上の奴だろ
765デフォルトの名無しさん
2020/04/28(火) 18:18:07.54ID:7TaGv6sC >>764
もしかしてバッチファイルとシェルスクリプトの違いわかってないの?
もしかしてバッチファイルとシェルスクリプトの違いわかってないの?
766デフォルトの名無しさん
2020/04/28(火) 18:19:14.04ID:7TaGv6sC シェルスクリプトっていうのはUnixやLinuxの
/bin/shとかbashのことなんだが
/bin/shとかbashのことなんだが
767デフォルトの名無しさん
2020/04/28(火) 18:20:52.04ID:RB8xSOb3 ファイル数わからんけどリネームソフト使えば一分かからんで終了
768デフォルトの名無しさん
2020/04/28(火) 20:35:28.46ID:C/yTg51l769デフォルトの名無しさん
2020/04/28(火) 20:39:22.04ID:C/yTg51l ちなみにMS-DOSにはエスケープ文字なんて無い
770デフォルトの名無しさん
2020/04/28(火) 20:40:45.75ID:f4hk4dsD771デフォルトの名無しさん
2020/04/28(火) 20:51:25.37ID:l2PF55i3 >>770
頑張ってググってきたんだからほめてやれよ
頑張ってググってきたんだからほめてやれよ
772デフォルトの名無しさん
2020/04/28(火) 22:38:03.31ID:0mXw36Cx >>769
Delims句でイコールを区切り文字にしたいときはサーカムフレックスでエスケープする必要があるときがあるけどね。
Delims句でイコールを区切り文字にしたいときはサーカムフレックスでエスケープする必要があるときがあるけどね。
773デフォルトの名無しさん
2020/04/28(火) 23:55:09.09ID:3RXW9/E3 cmdはシェルだ。定義も糞もない
774デフォルトの名無しさん
2020/04/29(水) 00:05:03.59ID:kLiglYQz >>768
cmdじゃないじゃん
cmdじゃないじゃん
775デフォルトの名無しさん
2020/04/29(水) 06:34:57.98ID:bLWOmnfL UNIXとかでshやbashがログインシェルとかインタラクティブシェルになるのと同じだよ
shやbash=cmd
シェルスクリプト=バッチファイル
シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
shやbash=cmd
シェルスクリプト=バッチファイル
シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
776デフォルトの名無しさん
2020/04/29(水) 06:56:52.10ID:SXZJio07 とはいえ逆にunixでバッチがどうとか言うと違和感あるしな
>>766みたいな感覚が一般的
>>766みたいな感覚が一般的
777デフォルトの名無しさん
2020/04/29(水) 07:15:11.82ID:sus1L+2H >>775
> シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
シェアならLinuxのシェルスクリプトの方が多いよ
今はsystemdに置き換えられつつあるが、起動処理の多くで
シェルスクリプトが使われていた。
各アプリのビルドなどでもシェルスクリプトは使われている。
それに対してバッチファイルは殆ど使われていない。
そもそもWindowsのコマンドは、他のコマンドの出力を読み取って
別のコマンドで処理するように設計されていない
単に呼び出すだけ。だからバッチファイルという名前になってる
例えばcopyコマンドであってもシェルスクリプトであれば、コピーが正常に終了した場合
なにも表示されないのでスクリプトとして使いやすいが
Windowsのcopyは人間用のメッセージがいちいち出る
コマンドの出力を変数に入れるだけでも大変
遅延環境変数の展開を使わなければ変数の中にメタ文字的なものが入るだけで簡単に壊れる
そもそもの設計思想がスクリプトを組むためではなく、単にコマンドを並べるという使い方を
するためだからバッチファイルはシェルスクリプトだけでなく
PowerShellスクリプトやVBScriptよりも使いづらくなってしまっている
一方、PowerShellスクリプトやVBScriptはコマンドをよびだすのが
面倒になってるので両立してるシェルスクリプトにはかなわない
> シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
シェアならLinuxのシェルスクリプトの方が多いよ
今はsystemdに置き換えられつつあるが、起動処理の多くで
シェルスクリプトが使われていた。
各アプリのビルドなどでもシェルスクリプトは使われている。
それに対してバッチファイルは殆ど使われていない。
そもそもWindowsのコマンドは、他のコマンドの出力を読み取って
別のコマンドで処理するように設計されていない
単に呼び出すだけ。だからバッチファイルという名前になってる
例えばcopyコマンドであってもシェルスクリプトであれば、コピーが正常に終了した場合
なにも表示されないのでスクリプトとして使いやすいが
Windowsのcopyは人間用のメッセージがいちいち出る
コマンドの出力を変数に入れるだけでも大変
遅延環境変数の展開を使わなければ変数の中にメタ文字的なものが入るだけで簡単に壊れる
そもそもの設計思想がスクリプトを組むためではなく、単にコマンドを並べるという使い方を
するためだからバッチファイルはシェルスクリプトだけでなく
PowerShellスクリプトやVBScriptよりも使いづらくなってしまっている
一方、PowerShellスクリプトやVBScriptはコマンドをよびだすのが
面倒になってるので両立してるシェルスクリプトにはかなわない
778デフォルトの名無しさん
2020/04/29(水) 07:22:12.44ID:VzuV0Enx アスペがうだうだ言ってるだけで全く「会話」が進行していないな
779デフォルトの名無しさん
2020/04/29(水) 07:36:25.95ID:SXZJio07 スレチだから、もうやめろ
780デフォルトの名無しさん
2020/04/29(水) 07:51:09.96ID:sus1L+2H やなコッタ
781デフォルトの名無しさん
2020/04/29(水) 22:15:38.24ID:f6LPbIhG パンナコッタ
782デフォルトの名無しさん
2020/04/29(水) 22:43:10.94ID:sus1L+2H メロンパンナ
783デフォルトの名無しさん
2020/04/30(木) 00:25:02.17ID:6g7fIyNp マンコッタ茶園のアッサムティーをすすりながら仕事するのが何よりの贅沢
784デフォルトの名無しさん
2020/04/30(木) 23:56:54.10ID:4NDFLh29 アッサムティー好き、いいよね
785デフォルトの名無しさん
2020/05/01(金) 20:45:42.45ID:I+dUmCMk カタコッタ
786デフォルトの名無しさん
2020/05/07(木) 18:46:37.87ID:jiFNKMfo 滅茶苦茶初歩的な質問ですまん
バッチファイルからPythonスクリプト実行してPythonスクリプト側でprintした文字列をバッチファイル側で取得する方法ってある?
バッチファイルからPythonスクリプト実行してPythonスクリプト側でprintした文字列をバッチファイル側で取得する方法ってある?
787デフォルトの名無しさん
2020/05/07(木) 18:51:16.63ID:cw3NlGJG FOR /F ["オプション"] %変数 IN ('コマンド') DO コマンド [コマンド パラメーター]
または usebackq オプションの場合:
FOR /F ["オプション"] %変数 IN (`コマンド`) DO コマンド [コマンド パラメーター]
または usebackq オプションの場合:
FOR /F ["オプション"] %変数 IN (`コマンド`) DO コマンド [コマンド パラメーター]
788デフォルトの名無しさん
2020/05/07(木) 18:51:30.99ID:jiFNKMfo もしくはコマンドプロンプトに出力された文字列を出所問わず取得したい
789デフォルトの名無しさん
2020/05/07(木) 19:01:03.56ID:jiFNKMfo790デフォルトの名無しさん
2020/05/07(木) 19:33:24.65ID:lct9jPsZ 昔だったら tail -f
791デフォルトの名無しさん
2020/05/07(木) 19:34:28.15ID:2gF3mugX792デフォルトの名無しさん
2020/05/07(木) 19:47:29.96ID:jiFNKMfo logzeroさらっと調べても設定全く分からんので今回は該当部分の出力だけlogzero.infoからprintにして無駄な出力を省いた
出力取得できたのでまあよし
出力取得できたのでまあよし
793デフォルトの名無しさん
2020/05/07(木) 20:17:47.30ID:2gF3mugX >>792
@echo off
setlocal enabledelayedexpansion
set n=0
for /f "tokens=*" %%i in ('py test.py 2^>^&1') do (
set IN!n!=%%i
set /a n+=1
)
set /a n-=1
for /l %%i in (0,1,%n%) do (
echo.!IN%%i!
)
endlocal
@echo off
setlocal enabledelayedexpansion
set n=0
for /f "tokens=*" %%i in ('py test.py 2^>^&1') do (
set IN!n!=%%i
set /a n+=1
)
set /a n-=1
for /l %%i in (0,1,%n%) do (
echo.!IN%%i!
)
endlocal
794デフォルトの名無しさん
2020/05/12(火) 09:27:08.95ID:hWMQZbFi >コマンドプロンプト入門 Kindle版
2020年にこれを出すとはチャレンジャーすぎるな
2020年にこれを出すとはチャレンジャーすぎるな
795デフォルトの名無しさん
2020/05/12(火) 16:03:14.69ID:PeLhefIP amazonで、確認すると、2019/09の出版みたいですね。
どうせなら、power shellの本出したほうが良かったかも。
どうせなら、power shellの本出したほうが良かったかも。
796デフォルトの名無しさん
2020/05/12(火) 18:45:23.48ID:NJ7uTfC9 ファイル名に「b」を含むファイルをコピーするときに
たとえば
abc.txt というファイルがあって
copy *b*.txt def.txt
がオッケーで
copy *b* def.txt
がエラーなのはなぜですか?
*は0文字以上の文字列なので
両方とも成功すると思っていたのですが
たとえば
abc.txt というファイルがあって
copy *b*.txt def.txt
がオッケーで
copy *b* def.txt
がエラーなのはなぜですか?
*は0文字以上の文字列なので
両方とも成功すると思っていたのですが
797デフォルトの名無しさん
2020/05/12(火) 19:05:09.66ID:fhydWmjd >>795
KindleストアにPowerShellのがいっぱいあるやん
KindleストアにPowerShellのがいっぱいあるやん
798デフォルトの名無しさん
2020/05/12(火) 19:55:35.27ID:UaCqmgBQ799デフォルトの名無しさん
2020/05/12(火) 19:59:26.87ID:fhydWmjd *b* が一つでもゴミが付くしね(0x1A)
800デフォルトの名無しさん
2020/05/23(土) 20:41:18.51ID:H5g1ckea Windows Terminal で音を鳴らすにはどうすればいいですか
コマンドプロンプトではControl-Gを出力してたんですが
Windows Terminalでは無視してくれやがります
コマンドプロンプトではControl-Gを出力してたんですが
Windows Terminalでは無視してくれやがります
801デフォルトの名無しさん
2020/05/23(土) 22:23:07.24ID:105ldQbQ start beep.wav
802デフォルトの名無しさん
2020/05/23(土) 22:45:59.81ID:H5g1ckea そんなんだったら
>copy con beep.cmd
echo ^G
waitfor /T 3 waiting
^Z
1 個のファイルをコピーしました。
>start /min cmd /d/c beep.cmd
とするけどもっといい手はないかなと
>copy con beep.cmd
echo ^G
waitfor /T 3 waiting
^Z
1 個のファイルをコピーしました。
>start /min cmd /d/c beep.cmd
とするけどもっといい手はないかなと
803デフォルトの名無しさん
2020/05/23(土) 23:00:15.85ID:H5g1ckea ああstartで自分を呼んで鳴らせばいいんだ
自己解決しました
自己解決しました
804デフォルトの名無しさん
2020/05/24(日) 00:25:04.68ID:VYuvM9gt805デフォルトの名無しさん
2020/05/24(日) 00:40:12.55ID:f4O9jhZ+ その手がWindows Terminalでは使えないって話
https://aka.ms/terminal-documentation
Windows ターミナルの概要 | Microsoft Docs
https://aka.ms/terminal-documentation
Windows ターミナルの概要 | Microsoft Docs
806デフォルトの名無しさん
2020/05/24(日) 00:46:46.59ID:VYuvM9gt807デフォルトの名無しさん
2020/06/03(水) 20:30:01.66ID:HabAm56l バッチでやるような処理でも
勉強兼ねてpowershell使って処理するようにしたほうがいいですか?
勉強兼ねてpowershell使って処理するようにしたほうがいいですか?
808デフォルトの名無しさん
2020/06/03(水) 20:31:25.42ID:5eIQQTQm 勉強でなら、そりゃそうだろと言うしかないね
809デフォルトの名無しさん
2020/06/03(水) 20:32:34.71ID:HabAm56l 実務上はどうです?
バッチの方が情報多いからいいんですか?
バッチの方が情報多いからいいんですか?
810デフォルトの名無しさん
2020/06/03(水) 21:04:50.01ID:mm84GRB0 >>809
どういう現場か知らないけど
Widn7 SP1 PSv2 縛り
なんて現場でPS書きたいとか思わないね。
使わせてくれる現場なら使うべきだし、そうでないならバッチをシコシコ書くしかないのよ。
どういう現場か知らないけど
Widn7 SP1 PSv2 縛り
なんて現場でPS書きたいとか思わないね。
使わせてくれる現場なら使うべきだし、そうでないならバッチをシコシコ書くしかないのよ。
811デフォルトの名無しさん
2020/06/03(水) 21:27:53.38ID:QZ+HyrOs シコシコかくのよ
812デフォルトの名無しさん
2020/06/03(水) 22:11:19.84ID:JNM2fzED PSでできること=C#でできることだからバッチとは全然できることが違うよ
PSv2でも十分バッチとは天地の差がある
PSv2でも十分バッチとは天地の差がある
813デフォルトの名無しさん
2020/06/03(水) 22:22:36.62ID:5eIQQTQm 元の質問が、「バッチでやるような処理でも」なんだけどな
ちゃんと読んでるか?
ちゃんと読んでるか?
814デフォルトの名無しさん
2020/06/03(水) 23:24:38.53ID:Gm6SBE/O >>809
情報量ならPowerShellの方が上だし
TechnetフォーラムならPowerShellのカテゴリーあるし
ポケットリファレンスの著者である牟田口大介まで出没している
ストアアプリのインストールとかはPowerShell必須だし
バッチのみじゃ書けない物も割と多い
処理の内容は忘れたけどバッチでやれた事を
PowerShellで書いたらキー入力を要求されて
かえってバッチの方が良かった場合もあるけど
そんなパターンは圧倒的に少ないと思う
でもウチの場合、PowerShell使いがいないから
というのが最大の理由で実務はバッチだらけ
良いか悪いかならきちんとメンテナンスが出来る物が良いであるべき
個人の感想ならばPowerShellって
バージョンが上がって非互換が出そうなので避けたい
情報量ならPowerShellの方が上だし
TechnetフォーラムならPowerShellのカテゴリーあるし
ポケットリファレンスの著者である牟田口大介まで出没している
ストアアプリのインストールとかはPowerShell必須だし
バッチのみじゃ書けない物も割と多い
処理の内容は忘れたけどバッチでやれた事を
PowerShellで書いたらキー入力を要求されて
かえってバッチの方が良かった場合もあるけど
そんなパターンは圧倒的に少ないと思う
でもウチの場合、PowerShell使いがいないから
というのが最大の理由で実務はバッチだらけ
良いか悪いかならきちんとメンテナンスが出来る物が良いであるべき
個人の感想ならばPowerShellって
バージョンが上がって非互換が出そうなので避けたい
815デフォルトの名無しさん
2020/06/04(木) 09:41:35.56ID:Di3Z81qX 9x系(95/98/Me)のWindows用MS-DOSプロンプトとNT系(それ以外)のWindows用コマンド・プロンプトの違いさえ
意識していれば、バッチファイルの利用は難しくないと思う。
VBScript(WSHことWindows Script Host)の場合は9x系とNT系に関係なく、WSHバージョン5.1以降かどうかさえ
気をつけていれば概ね大丈夫だと思う。
それらに比べてPowerShellは、個人的にはハードルが極めて高い。
意識していれば、バッチファイルの利用は難しくないと思う。
VBScript(WSHことWindows Script Host)の場合は9x系とNT系に関係なく、WSHバージョン5.1以降かどうかさえ
気をつけていれば概ね大丈夫だと思う。
それらに比べてPowerShellは、個人的にはハードルが極めて高い。
816デフォルトの名無しさん
2020/06/04(木) 15:05:12.56ID:iofqxoab817デフォルトの名無しさん
2020/06/04(木) 15:12:12.70ID:iofqxoab >>814
PSはバージョン指定(-vオプション)すればそのバージョンが実行される仕組みを持ってるから互換性についてもある程度クリーンだよ
PSはバージョン指定(-vオプション)すればそのバージョンが実行される仕組みを持ってるから互換性についてもある程度クリーンだよ
818デフォルトの名無しさん
2020/06/04(木) 15:16:33.10ID:efimIni8 BATの典型的なものとしては
シーケンシャルに
・外部アプリ呼び出し
・ファイルコピーや移動
・メッセージ表示
であって、こんなものをPowerShellで書く必要は無いし、ステップ数も余分にいる
シーケンシャルに
・外部アプリ呼び出し
・ファイルコピーや移動
・メッセージ表示
であって、こんなものをPowerShellで書く必要は無いし、ステップ数も余分にいる
819デフォルトの名無しさん
2020/06/04(木) 21:18:27.58ID:U7KCPoET PSの話したいなら該当スレへ
ここでするのはスレチ
ここでするのはスレチ
820デフォルトの名無しさん
2020/06/05(金) 09:26:58.17ID:YNSaAEsR バッチファイル内で、複数の文字列の一部だけを羅列して、それをまとめて補完したものを変数に入れたい
具体的には
set LOGFILES=%LOG%\tech\*.dat %LOG%\prog\*.dat %LOG%\win\*.dat %LOG%\newsplus\*.dat ...
のように指定するのではなく
setlocal enabledelayed...
for %%f in (tech prog win newsplus) do (
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
)
のようにして、増減や修正を簡単に出来るようにしたい
したいんだけど、なんかうまく動いてくれない
何かヒントもらえますか?
具体的には
set LOGFILES=%LOG%\tech\*.dat %LOG%\prog\*.dat %LOG%\win\*.dat %LOG%\newsplus\*.dat ...
のように指定するのではなく
setlocal enabledelayed...
for %%f in (tech prog win newsplus) do (
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
)
のようにして、増減や修正を簡単に出来るようにしたい
したいんだけど、なんかうまく動いてくれない
何かヒントもらえますか?
821デフォルトの名無しさん
2020/06/05(金) 10:14:13.82ID:YNSaAEsR 自己解決
どうやらこんな感じで動きそう
for %%f in (tech prog win newsplus) do (
call :APPEND %%f
)
:APPEND
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
goto :EOF
どうやらこんな感じで動きそう
for %%f in (tech prog win newsplus) do (
call :APPEND %%f
)
:APPEND
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
goto :EOF
822デフォルトの名無しさん
2020/06/05(金) 11:33:35.77ID:xkF+o6Lc >>820
setlocal enabledelayedexpansion
for %%f in (tech prog win newsplus) do (
set LOGFILES=!LOGFILES! %LOG%\%%f\*.dat
)
じゃダメなの?
setlocal enabledelayedexpansion
for %%f in (tech prog win newsplus) do (
set LOGFILES=!LOGFILES! %LOG%\%%f\*.dat
)
じゃダメなの?
823デフォルトの名無しさん
2020/06/05(金) 11:53:35.34ID:YNSaAEsR あれ?出来ますね
実は!で囲むのもやってみた(つもりだった)んだけど
(たぶん、どっか別のちょっとしたところでミスしてて)
その時はうまく動かなかったんですね
失礼しました
実は!で囲むのもやってみた(つもりだった)んだけど
(たぶん、どっか別のちょっとしたところでミスしてて)
その時はうまく動かなかったんですね
失礼しました
824810
2020/06/06(土) 00:36:10.94ID:ZNTMwsEj >>817
業務システムのくせに -v の無いPSスクリプトを Win7 上で動かしてるクソシステム、あるよ。改修したくもないけど。
PS は ver.3 で破壊的変更がなされたから、ver.2 に合わせて勉強するだけ無駄だと言われている。
core になって COM も切られたから Word や Excel ファイルへのアクセスも今後どーなんの?的な段階。
また、PS が「管理の自動化」を目指しているのに対して、バッチや WSH は「一般ユーザーの定型操作の自動化」を目指しているから方向性自体が違う。
おまけにバッチとWSHはもう仕様変更が無いという強みがある。
等価なものを個人的に PS でリライトしてみる、はいいと思うけど、本番環境に入れるのはNGかな…。
業務システムのくせに -v の無いPSスクリプトを Win7 上で動かしてるクソシステム、あるよ。改修したくもないけど。
PS は ver.3 で破壊的変更がなされたから、ver.2 に合わせて勉強するだけ無駄だと言われている。
core になって COM も切られたから Word や Excel ファイルへのアクセスも今後どーなんの?的な段階。
また、PS が「管理の自動化」を目指しているのに対して、バッチや WSH は「一般ユーザーの定型操作の自動化」を目指しているから方向性自体が違う。
おまけにバッチとWSHはもう仕様変更が無いという強みがある。
等価なものを個人的に PS でリライトしてみる、はいいと思うけど、本番環境に入れるのはNGかな…。
825デフォルトの名無しさん
2020/06/09(火) 07:37:38.68ID:xQo5RGeQ 長々と更新してもcmd変わらず放置
不具合あればPS使えということか
バッチに未来は無い
不具合あればPS使えということか
バッチに未来は無い
826デフォルトの名無しさん
2020/06/09(火) 21:59:44.80ID:Phlj4K/L cmdはもう更新しないってアナウンス出てなかったっけ?
827デフォルトの名無しさん
2020/06/09(火) 22:16:29.17ID:aAgqnyde バッチ処理って簡単な定時処理に使ってる人がほとんどだろうし
現状維持でこのまま使えたらそれでいいよ
現状維持でこのまま使えたらそれでいいよ
828デフォルトの名無しさん
2020/06/14(日) 08:05:01.57ID:Nip9LUw0 教えてください。
引数以外でショートカットの情報をバッチに渡すことはできますか?
バッチ自体のファイル名、パス名を取得する方法はよく見かけますが、、
ショートカットのファイル名や親フォルダの情報をバッチに渡す手段ってやっぱりないですかね?
引数以外でショートカットの情報をバッチに渡すことはできますか?
バッチ自体のファイル名、パス名を取得する方法はよく見かけますが、、
ショートカットのファイル名や親フォルダの情報をバッチに渡す手段ってやっぱりないですかね?
829デフォルトの名無しさん
2020/06/14(日) 10:09:40.34ID:Rvue1P4U ショートカットって何の?起動したバッチファイルのもの?
ショトカ自体は dir *.lnk で取れるけど複数あると特定は面倒臭かったり無理かも
どのlnkからバッチが起動されたか?は作業ディレクトリがそのlnkと同じだとか限定条件下でないと無理じゃないかな
ショトカ自体は dir *.lnk で取れるけど複数あると特定は面倒臭かったり無理かも
どのlnkからバッチが起動されたか?は作業ディレクトリがそのlnkと同じだとか限定条件下でないと無理じゃないかな
830デフォルトの名無しさん
2020/06/14(日) 10:41:39.28ID:Nip9LUw0 >>829
やっぱり無理そうですね。
ショートカットのファイル名をショートカットのコマンドラインに渡してバッチに引き渡そうと企んだのですが、、、
%0とか%~dp0とか記述しても記述そのままで%1に渡るだけでした。
何か方法ないのかなと思い、、あきらめます。
ご回答ありがとうございます。
やっぱり無理そうですね。
ショートカットのファイル名をショートカットのコマンドラインに渡してバッチに引き渡そうと企んだのですが、、、
%0とか%~dp0とか記述しても記述そのままで%1に渡るだけでした。
何か方法ないのかなと思い、、あきらめます。
ご回答ありがとうございます。
831デフォルトの名無しさん
2020/06/14(日) 11:24:19.06ID:2FaHAA2B ショートカットのプロパティで作業フォルダを弄ればいいだろ。
リンク先のバッチで%cd%参照。
ファイル名なんてリンク先に合わせりゃいいだろ。
リンク先のバッチで%cd%参照。
ファイル名なんてリンク先に合わせりゃいいだろ。
832デフォルトの名無しさん
2020/06/14(日) 11:26:00.19ID:Q6c7IGAp833デフォルトの名無しさん
2020/06/14(日) 11:45:22.44ID:2FaHAA2B プロパティのリンク先に自分のフルパスを追加してもいい
リンク先のバッチで%1参照。
リンク先のバッチで%1参照。
834デフォルトの名無しさん
2020/06/14(日) 12:14:20.27ID:Nip9LUw0835デフォルトの名無しさん
2020/06/14(日) 12:15:45.60ID:Nip9LUw0836デフォルトの名無しさん
2020/06/14(日) 12:16:13.25ID:Rvue1P4U ショートカット名を動的に生成してダブルクリックだけでリンク先のバッチへ引数として渡したいって事なんじゃないの?
ショートカット名を一時ファイル代わりにしたかったんだと思ってたけど
ショートカット名を一時ファイル代わりにしたかったんだと思ってたけど
837デフォルトの名無しさん
2020/06/14(日) 12:17:49.77ID:Nip9LUw0838デフォルトの名無しさん
2020/06/14(日) 12:18:03.34ID:2FaHAA2B 作業フォルダを空欄にするだけなんだけど
839デフォルトの名無しさん
2020/06/14(日) 12:20:20.62ID:Nip9LUw0840デフォルトの名無しさん
2020/06/14(日) 12:25:13.85ID:Nip9LUw0 ショートカットの代わりにバッチを呼ぶためのバッチを作ればよいことに今気づきました。
ショートカットのコマンドラインで自分を参照する記述が出来そうもないことも確認できたので収穫でした。
みなさんおつきあい頂きありがとうございます。
ショートカットのコマンドラインで自分を参照する記述が出来そうもないことも確認できたので収穫でした。
みなさんおつきあい頂きありがとうございます。
841デフォルトの名無しさん
2020/06/14(日) 12:32:21.09ID:Rvue1P4U842デフォルトの名無しさん
2020/06/14(日) 12:47:38.30ID:zWNqxiy9 別フォルダにコピーする時点で親フォルダ分かってるんじゃない?
843デフォルトの名無しさん
2020/06/14(日) 19:57:43.39ID:Nip9LUw0 >>841
おおお、なるほど!
StartInを指定しなければ、CurrentDirectoryは移動しないのか。
リンクファイル名の方は無理そうですが、親フォルダはこれでいけそうです。
感謝!!
VBAのApplication.Callerみたいなのが書ければいいんですけどね。
おおお、なるほど!
StartInを指定しなければ、CurrentDirectoryは移動しないのか。
リンクファイル名の方は無理そうですが、親フォルダはこれでいけそうです。
感謝!!
VBAのApplication.Callerみたいなのが書ければいいんですけどね。
844デフォルトの名無しさん
2020/06/14(日) 20:09:16.72ID:2FaHAA2B 作業フォルダが空だと他所のフォルダからD&Dしたらそっちになるけどな。
あと、管理者権限で実行したらC:\WINDOWS\system32になったりする
あと、管理者権限で実行したらC:\WINDOWS\system32になったりする
845デフォルトの名無しさん
2020/06/14(日) 20:15:00.02ID:Nip9LUw0 >>844
そうなりますね。気をつけます。
そうなりますね。気をつけます。
846デフォルトの名無しさん
2020/06/14(日) 21:58:02.09ID:Nip9LUw0 すみません。もう1つ質問です。
バッチ自身を最小化して起動するときどうされてますか?
これが理由の1つでショートカット起動していたのですが、代わりにバッチを使うとコンソールが表示されてしまいます。
サイトでよく見かける、@If not "%~0"... というやつは、Win7のためか機能しません。
普段は固定的に行う場合は、ショートカットやVBSをはさみ最小化実行しているのですが、、
うまい方法があれば教えてください。
バッチ自身を最小化して起動するときどうされてますか?
これが理由の1つでショートカット起動していたのですが、代わりにバッチを使うとコンソールが表示されてしまいます。
サイトでよく見かける、@If not "%~0"... というやつは、Win7のためか機能しません。
普段は固定的に行う場合は、ショートカットやVBSをはさみ最小化実行しているのですが、、
うまい方法があれば教えてください。
847デフォルトの名無しさん
2020/06/15(月) 14:19:29.38ID:YYrFY+5A 無い
848デフォルトの名無しさん
2020/06/15(月) 19:14:00.08ID:X3dRtIQ2 >>847
了解!
了解!
849デフォルトの名無しさん
2020/06/15(月) 19:21:32.94ID:bzzr0fEY start
850デフォルトの名無しさん
2020/06/15(月) 21:31:09.57ID:xZsc1Mf0 pause
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 清涼飲料水から麻薬成分東京都が注意喚起 [おっさん友の会★]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 【日刊】暇空茜、また敗訴🥸 [359965264]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
- 高市のプライドはエベレストより高い。だから、発言を撤回できない [805596214]
- んなっしょい🍬禁止🈲のお🏡
