【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
1-

15: 2022/09/26(月)12:58 ID:3mhNpNjH(2/2) AAS
英語だと
delayed expansion
delayed variable expansion
説明文的には
Enables the delayed environment variable expansion
Setting EnabledDelayedExpansion will cause each variable to be expanded at execution time rather than at parse time
16
(2): 2022/09/26(月)17:38 ID:dNpEj5o9(1) AAS
set /a a=random
は0なんやな
一般変数と処理が違うんだ
17: 2022/09/26(月)21:36 ID:ou4YDIZU(3/3) AAS
>>11
>>14

ありがとうございます。
うまく動きました!
18: 2022/09/28(水)11:14 ID:RG22wEyx(1) AAS
>>16
> 一般変数と処理が違うんだ
違わない

set a=
set random=
set /a b=a, c=random
echo %b%, %c%, %random% #set /a では環境変数として定義されていない文字列は0として扱われる
set a=1
set random=1
set /a b=a, c=random
echo %b%, %c%, %random% #特殊変数は環境変数として定義されると環境変数が優先され特殊変数としては機能しなくなる
set random=
echo %random% #環境変数を削除すれば元通り
pause
19: 2022/09/28(水)12:04 ID:Cg5haYXb(1) AAS
>>16
set /a a=%random%
20: 2022/09/29(木)13:35 ID:ezl+1hvw(1) AAS
確かに違わないんだけど、どう違わないのか勝手に補足。

set /?に基づくここでの用語定義:
・「環境変数」(一般変数)
   … 値が一旦決まれば勝手には値が変わらない普通の環境変数。Windowsの機能がベース。
・「動的な環境変数」(dynamic environment variables)(特殊変数)
   …「RANDOM」「ERRORLEVEL」など。cmdの独自機能。

仕様仮定(私の認識):
・set /a での名前だけで値を参照できる機能は「環境変数」だけ対象としている。
・cmdの構文解釈による「%〜%」で値を参照できる機能は
 「環境変数」と「動的な環境変数」を対象としている。

以上を踏まえたうえで
「set /a a=random」の「random」は「動的な環境変数」ではなく「環境変数」であり、
『他の「環境変数」の扱い』と「違わない」。

「一般変数と処理が違う」のはcmdによる構文解釈の「%〜%」での扱い。

また、「set /a a=%random%」での「%random%」は
まずcmdの構文解釈により「動的な環境変数」として「123」のように展開され
「set /a a=123」となり、setには「環境変数」すら使われていないように見える。

※cmdの内部コマンドである「set」からは「動的な環境変数」も見えてもいいのにね。
 同じく内部コマンドの「if」からは見えてるみたいだし。
21: 2022/10/05(水)15:17 ID:NmGDxxah(1/2) AAS
質問です。
ファイルのフルパスを表示するときに、
このコマンド使っていますよ、という意味で
rem %0
echo %0
と買いているんですが、remの方の変数まで展開されてしまいます。
展開させずに文字列のまま表示するにはどうしたらよいでしょうか?
22
(1): 2022/10/05(水)15:28 ID:yuT90fin(1) AAS
rem %%0
23: 2022/10/05(水)16:34 ID:NmGDxxah(2/2) AAS
>>22
出来ました!ありがとうございます。
24: 2022/10/08(土)17:33 ID:zk6uj/6h(1/2) AAS
C:\test>"C:\test\app.exe"
というコマンドを間違えて実行したらapp.exeが0バイトに書き変わったのですがなぜでしょうか
25: 2022/10/08(土)17:43 ID:f2a8Snt9(1/2) AAS
空の標準出力をリダイレクトで書き込んでるからだろう
26: 2022/10/08(土)17:48 ID:R/0NVeNc(1) AAS
なぞなぞじゃね?
27
(1): 2022/10/08(土)18:00 ID:zk6uj/6h(2/2) AAS
コマンドプロンプトからバッチファイルにコピペしたら間違えて作業フォルダが付いてしまって
何かのコマンドなのでしょうか
28: 2022/10/08(土)18:59 ID:f2a8Snt9(2/2) AAS
オカルトかな?
ん?お前のパソコン何かおかしくね?
29: 2022/10/08(土)21:15 ID:4RiXxOsU(1) AAS
>>27
日本語でOK
30
(1): 2022/10/08(土)21:20 ID:NCKRr8hU(1) AAS
エラーになってもリダイレクトは実行されちゃうんだな
バグとちゃうか
31: 2022/10/08(土)21:31 ID:bRwGYufv(1) AAS
プロンプトまでバッチにコピペするなよ
32: 2022/10/09(日)11:18 ID:yk0ofCIK(1) AAS
>>30
指定された実行対象ファイルがない、
というのは実行時エラーなので(構文エラーではない)
そのエラーメッセージをファイルリダイレクトして記録できる事は有益。
なのでバグ(仕様バグ)ではないと思われる。
33: 2022/10/09(日)12:38 ID:r7gKIzvL(1) AAS
一貫性のある動きだよな
エラー出力は欲しいけど標準出力はリダイレクト自体をなかったことにしてくれというのは無理がある
そもそもリダイレクト先がログファイルなら気にも留めないような話
びっくりする理由があるとしたらexeにリダイレクトしても容赦なく書き換えられるという点で、コマンドラインはそういう点で結構慈悲がない
ある程度はパワーユーザー向けという位置付けなので気をつけるしかない
34: 2022/10/12(水)04:44 ID:Jko2ebMR(1) AAS
window-position異なる位置のバッチをそれぞれ作ってるのですが
bat2個目を起動すると1個目の起動したバッチにつられてカスケード起動します
何か対処方法ありますでしょうか?
35: 2022/10/13(木)18:33 ID:Fb+ro4ZF(1) AAS
UIから起動されたCMDからのバッチなのか判別する方法ありますか?LinuxでいうTERMみたいな
36: 2022/10/13(木)20:39 ID:tHyHHwT5(1) AAS
うん
過去スレで全く同じ質問してる子いるから漁っておいで
37: 2022/10/30(日)06:52 ID:i1fpLCEI(1) AAS
zipファイルに書き込むコマンドはありますか?
copy foo.txt bar.zip
とやっても「bar.zipに上書きしますか?」になるだけなんですけど
上書きがしたいんじゃなくアーカイブしたいんです。
38: 2022/10/30(日)08:16 ID:oF72FRjI(1) AAS
7za.exe
39: 2022/10/30(日)17:16 ID:RObFZ+1A(1) AAS
compressコマンドはcabだけだったかな?
pwsh -c "gh compress-archive"参照
40
(1): 2022/10/30(日)20:28 ID:WT6dub7d(1) AAS
explorerで操作すると書き込めるからコマンドありそうな気がする
41: 2022/10/30(日)20:49 ID:JhK1ASYS(1) AAS
zipコマンドでググれ
42: 2022/10/31(月)15:34 ID:aCuyX04T(1) AAS
pwsh -c "Get-help -name compress-archive"
43: 2022/10/31(月)22:51 ID:HZxZgtz6(1) AAS
>>40
Explorerと同じ圧縮処理は、ExplorerのCOMオブジェクト(Shell.Application)を操作する事でできる。
確か、正式に提供した機能ではないので動作は保証しない、非推奨、みたいな扱いだった気が。
44
(1): 2022/11/02(水)15:48 ID:ZBNaiNsJ(1/2) AAS
質問失礼します。
ファイル名の一部の文字列(例:4文字目から8文字目まで)を一括削除するバッチを作りたいのですが…
[例]a1b2c3d4e5.m4a→a1b2e5.m4a
検索の結果、先頭4文字を削除するバッチ(下記)を見つけたので、アレンジしたいのですが、その方法がわからずにおります。
アレンジ方法がわかる方、もしくは別の方法でも構いませんので、教えて頂けないでしょうか?
------------------------
for %%i in (*) do (
if not "%%i"=="%~nx0" (
set vv=%%i
call ren %%i %%vv:~4%%
)
)
------------------------
参考になりそうなURLでも助かります。
1-
あと 775 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.010s