[過去ログ] 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
845: 2018/10/05(金)06:58 ID:Iu01kfl1(1/6)調 AAS
setlocal enabledelayedexpansion
set /a "a=1,b_!a!=2"
set b_
で、
b_0=2
何か変だが、こういう仕様なのか?
846(1): 2018/10/05(金)08:53 ID:vSWfZutq(1/4)調 AAS
,で分けてあってもsetコマンドは1つだけなので複数コマンドとは思われてないってことなんだろうね
setlocal enabledelayedexpansion
set /a a=1 & set b_!a!=2
set b_!a!
なら大丈夫
847: 2018/10/05(金)17:03 ID:Iu01kfl1(2/6)調 AAS
>>846 ありがとうございます
!a! は set /a 実行直前の値でした
setlocal enabledelayedexpansion
set /a a=0
for /L %%i in (1,1,3) do set /a "a=%%i,b=a,c=!a!,d=%a%" & echo !a! !b! !c! !d!
1 1 0 0
2 2 1 0
3 3 2 0
848: 2018/10/05(金)17:27 ID:vSWfZutq(2/4)調 AAS
setlocal enabledelayedexpansion
set /a a=0
for /L %%i in (1,1,3) do ( set /a a=%%i &set /a b=a &set /a c=!a! &set /a d=%a% &echo !a! !b! !c! !d! )
なら
1 1 1 0
2 2 2 0
3 3 3 0
となる。
bへの値代入が!抜きのaでできるって知らなかったわ…
謎挙動。
849: 2018/10/05(金)18:09 ID:Iu01kfl1(3/6)調 AAS
set /a で %a% や !a! はあまり使用しない方が良さそうだ
% や ! は演算子に含まれる文字で紛らわしいし
展開のタイミングで予想外の挙動するし
展開時に >>844 のように特異値でエラーになったりするし
値参照は変数名だけでいい
850(1): 2018/10/05(金)18:17 ID:vSWfZutq(3/4)調 AAS
ご自由に。それより某グラマー御用達QAサイトのトップ回答者様が書くバッチがgoto :EOF 多用で頭痛い
851: 2018/10/05(金)18:26 ID:Iu01kfl1(4/6)調 AAS
俺もよく使うよ、goto :eof
852: 2018/10/05(金)18:28 ID:hOPHqLcn(1)調 AAS
>>850
何か問題が?
goto :endとかより遥かにいいと思うが
853: 2018/10/05(金)18:33 ID:Iu01kfl1(5/6)調 AAS
goto その物が多いとか言われた事も
854: 2018/10/05(金)18:46 ID:vSWfZutq(4/4)調 AAS
自分だと大抵
{メインルーチン}
goto :EOF
:sub1
{サブルーチン12}
exit /b
:sub2
{サブルーチン}
exit /b
と書くことが多い。
トップ回答者様は
{メインルーチン}
goto :EOF
:sub1
{サブルーチン}
goto :EOF
sub2
{サブルーチン}
goto :EOF
と回答されている。サブルーチンの下のはgoto は不要だし慣れない。
855: 2018/10/05(金)19:02 ID:Iu01kfl1(6/6)調 AAS
戻り値なけりゃどっちでもいい様な気がするが
逆に exit を避けてる人もいるよ
856: 2018/10/05(金)19:53 ID:LaGwhHU8(1)調 AAS
俺もgoto派だな
857: 2018/10/05(金)21:35 ID:RB/KKRkK(1)調 AAS
gotoは見通しが悪くなるから、極力使わないようにしてる
他の主流の言語だと使えないものが多いから、必然的にそういう書き方に慣れてしまった
858: 2018/10/05(金)23:49 ID:8nMQUHh9(1/2)調 AAS
goto は使わないに越したことはない。
が、制御構文が貧弱な言語では、熟慮の上で使わざるを得ない場面で使う。
が正解。
詳しくはWikipediaで。
859: 2018/10/05(金)23:56 ID:qkvvR9Zs(1)調 AAS
Cでもgotoは使うよね
860(1): 2018/10/05(金)23:58 ID:8nMQUHh9(2/2)調 AAS
C言語にはMISRAとかいう規約があるが無視していい。
あれは組み込み分野だけの特殊なものだと思っていい。
大抵の人間は、「これは思考からはぶいていい」という書き方の方が読みやすい。
だから、「これは戻すか終わらせる」と書いていっていい。
そうすれば、残ったものに集中できるだろ?
まぁ、日ごろ「自分が辞めた後にこれを読まされる人間が困らないかどうか」って考えて書いてるかどうかってことだ。
861(2): 2018/10/06(土)16:39 ID:P4YKYACU(1)調 AAS
あちこちでreturnするのもスパゲッティなgotoと大差がない気がするんだ
テロ的というか
862: 2018/10/06(土)17:10 ID:GNiE4xH/(1)調 AAS
字面が違うだけで同じだろ
863: 2018/10/06(土)20:28 ID:gea8Zy97(1)調 AAS
gotoもイディオムに従って使えば混乱しない
バッチファイルだとforの方が理解不能で害悪
864: 2018/10/06(土)23:02 ID:tgEP6apu(1)調 AAS
gotoがゴーゴーに見えた
865: 2018/10/06(土)23:12 ID:uJ87E9Rb(1)調 AAS
>>860-861
IPAの出してるMISRAの解説書のreturnは1か所にしろというルール、
あれはクソofクソのルールだと思うね。early returnこそ正義
Cとbatの書き方は全然比較にならないけど
866: 2018/10/07(日)00:27 ID:pbh8RIqN(1)調 AAS
>>861
むしろ goto の良い使い方と言われている制限が、return をまねたもの。
867(1): 2018/10/07(日)11:03 ID:Bzp9uIq0(1/4)調 AAS
バッチファイルかパワーシェルでIPv4のIPアドレスのみを取得して環境変数に代入するにはどういうコマンドになりますか?
教えてください
868: 2018/10/07(日)12:00 ID:6qmhFN/2(1)調 AAS
「powershell ip address」で検索!
869: 2018/10/07(日)12:28 ID:VwaVbKnV(1)調 AAS
>>867
環境変数IPAddressに192を含んだIPアドレスを代入するサンプル(PowerShell 2.0併用)
set CMD=powershell -command "& {ipconfig |? {$_ -match 'IP.*: 192\.'}|% {$_ -replace '.*: (\d+\.\d+\.\d+\.\d+)','$1'}}"
for /f "usebackq delims=" %%a in (`%CMD%`) do set IPAddress=%%a
echo %IPAddress%
PowerShell部分はipconfigの結果から正規表現でIPと: 192という文字を含む行を抽出
抽出した行のIPアドレス部分のみ正規表現の置換で抽出といった感じ
PowerShell3.0以降だともうちょっと素直に書ける感じだけど
870(1): 2018/10/07(日)12:53 ID:Dedwpgqn(1/5)調 AAS
アダプタが1つだけならこんなでいいんじゃね?
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%a in ('ipconfig ^|find "IPv4"') do set IPADRESS=%%a
set IPADRESS=%IPADRESS:~1%
echo %IPADRESS%
871: 2018/10/07(日)12:54 ID:Bzp9uIq0(2/4)調 AAS
この処理作るのにバッチとパワーシェル組み合わせないとできないんですか?
ip取得するだけでも結構大変なのですね
872: 2018/10/07(日)12:56 ID:Bzp9uIq0(3/4)調 AAS
と思ったらバッチだけでもできそうなんですね、アダプターは一つです
ちょっと色々教えてもらったのでテストしてみます!
873: 870 2018/10/07(日)13:03 ID:Dedwpgqn(2/5)調 AAS
遅延変数展開の呪文要らなかったわ、1行目削っていいよ
874: 2018/10/07(日)13:07 ID:Bzp9uIq0(4/4)調 AAS
遅延環境数ってforとifの()で使用するときだけ必要なんでしたっけ?
875: 2018/10/07(日)13:23 ID:Dedwpgqn(3/5)調 AAS
だいたいその理解でおk
forやifの()内のスクリプトブロックが複数処理で変数代入とその参照のペアがある場合に使う
1処理だけとか、代入だけとかなら不要
876: 2018/10/07(日)17:41 ID:0jrGYEp4(1/4)調 AAS
無限ループの原因は何か
SET A=1073741824
FOR /L %%B IN (-%A%,%A%,%A%) DO ECHO %%B
877: 2018/10/07(日)19:04 ID:Dedwpgqn(4/5)調 AAS
set /a A=1073741824
1073741824
set /a B=A+A
-2147483648
となるからね、32bitINTの範囲が-2147483648〜-2147483647
2進表記の最上位bitが1が立ってしまったらマイナス値
878: 2018/10/07(日)19:25 ID:Dedwpgqn(5/5)調 AAS
試してみるとfor /l 文ではステップ値が1073741824以上の場合必ずバグったループになるね、まあ仕方ないのかも
879: 2018/10/07(日)19:43 ID:0jrGYEp4(2/4)調 AAS
内部的にどんな計算してるか気になるところです
B は -1073741824,0,1073741824 なので
普通に考えると32ビットのオーバーフローはしてない筈
880: 2018/10/07(日)19:55 ID:0jrGYEp4(3/4)調 AAS
ああ、分かった
4ループめでオーバーフローするのか
3ループめで最終値に等しいと抜けるんじゃ無いわけか
881: 2018/10/07(日)19:57 ID:2JwzOMBB(1)調 AAS
バッチファイルのif文でパワーシェルのif -Orみたいな処理できますか?
882: 2018/10/07(日)20:18 ID:0jrGYEp4(4/4)調 AAS
IFの条件は2個の値を比較するだけ
複雑なOR,AND,XORとかあるんなら計算して結果を変数に入れる
それをIFの条件で使う
883: 2018/10/08(月)21:58 ID:To7x1PVP(1)調 AAS
あると便利なミニミニバッチ
DOS窓に今の時間を表示しておく
m.bat
@echo off
setlocal
set x=%date:~5% %time:~0,5% %*
title=%x%
exit /B 0
画面クリア
c.bat
@echo off
cls
exit /B 0
クリップボードクリア
cc.bat
@echo off
echo.|clip
echo clip clear
exit /B 0
884(2): 2018/10/09(火)08:38 ID:IIAdkwpd(1)調 AAS
画面クリアは普通にcls打つのと何が違うん?
885: 2018/10/09(火)11:35 ID:9WevvN1n(1)調 AAS
時刻表示ならプロンプト変えたら?
clsは>>884
クリップボード履歴管理系のアプリ使ってる人には無用?
886: 2018/10/09(火)15:53 ID:hXgFZ2lj(1)調 AAS
>>884
一文字でいいので、お菓子を食べながらでもできる、大差
887: 2018/10/10(水)17:37 ID:Wl83IH5q(1)調 AAS
そういうしょぼいものならdoskeyでも使っとけ
888: 2018/10/11(木)22:01 ID:aIIKUaH8(1)調 AAS
1文字とか何かで誤爆しそうで危うすぎる
889: 2018/10/12(金)00:17 ID:xVyRtSc0(1)調 AAS
くだらねー
890(1): 2018/10/13(土)05:37 ID:YmkYzRio(1)調 AAS
copyコマンドがおかしい
copy x+y z
とするとzに改行追加されている
copy /B x+y z
だと問題なしだが??
891(1): 2018/10/13(土)07:34 ID:TS7U3WRI(1)調 AAS
>>890これね
http://shigechi-64.hatenablog.com/entry/20090717/1247798200
892: 2018/10/13(土)19:25 ID:fQqIQRVk(1)調 AAS
改行じゃなくて 0x1A の 1byte なら付加されるが
echo test> a
dir a
copy a /b + nul /a
dir a
サイズが 1byte 増える
893: 2018/10/14(日)01:22 ID:IWBgfNe4(1)調 AAS
>>891
以前から知られていたのですね
そのサイトはウィルス注意報が出たので見ませんでしたが
894: 2018/10/14(日)06:32 ID:5zXkQKrC(1)調 AAS
テキストファイルのEOF(0x1A)は前世紀の遺物
昔のテキストエディタはファイルの末尾にEOF(0x1A)を付加していた。
仕様が古すぎて今じゃCOPYのヘルプを見ても、詳細が分からん状態
copy でファイルを連結する時は /a がデフォルト
ちなみに copy /a はEOF(0x1A)を付加するだけじゃないぞ
ファイルの途中に0x1Aが有ったらそれ以降が無くなってしまう怖い仕様
あと、echo xxx >> とかでテキストを追加したら末尾の0x1Aは勝手に削除される
895(1): 2018/10/14(日)09:07 ID:YBMQaeBO(1)調 AAS
>>30
>>31
ずいぶん昔の質問で悪いんだが
これって全ての引数を意味する「%*」に起動時のコマンドラインは含まれないってこと?
896: 2018/10/14(日)18:08 ID:gwXaIkcp(1)調 AAS
chcp 65001入ってるスクリプトをUTF-8で保存して動かしてみたらエスケープ処理が酷い・・・
897(1): 2018/10/15(月)01:28 ID:yVBNeV/e(1)調 AAS
>>895
そうです
バッチはいろいろ癖があるので、そんなものだと思うしかないです
別件
echo %*
shift
echo %*
rem %* はshiftされない
898: 2018/10/16(火)00:24 ID:GeydM3gl(1)調 AAS
>>897
The shift command has no effect on the %* batch parameter.
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/shift
SHIFT doesn't affect %*
https://stackoverflow.com/questions/12990480/shift-doesn-t-affect
899(2): 2018/10/25(木)05:27 ID:cKUaktMr(1)調 AAS
echo %__APPDIR__%
C:\Windows\SysWOW64\
これが出る時32ビットのコマンドプロンプトらしいんですが
64ビットのコマンドプロンプトと何か違うんでしょうか
900: 2018/10/27(土)11:16 ID:NXHcy7gB(1/4)調 AAS
reg query "HKU\.DEFAULT\Control Panel\International"
表示された最後の行に
HKEY_USERS\.DEFAULT\Control Panel\International\・・・・・・
これは何だろうとレジストリエディタで見ると謎の文字で地球が3つ。
しかしメモ帳で表示出来る文字が
コンソール画面で表示出来ないのはダメだね
901: 2018/10/27(土)12:02 ID:8ILfgags(1/3)調 AAS
メモ帳「俺はだいぶ前からユニコード対応済みだから表示はするさ、ANSI(CP932)で保存はできなくてもなー」
902: 2018/10/27(土)12:15 ID:NXHcy7gB(2/4)調 AAS
DIRコマンドでもユニコード対応してるよね。ちゃんと表示される。
でもこの地球文字はDIRコマンドでも表示されないようだ
フォントの問題かねえ
903: 2018/10/27(土)13:14 ID:8ILfgags(2/3)調 AAS
フォント問題だね、
メモ帳とかレジストリエディタはフォントリンクで表示用フォントが持ってないコードも他のフォントにあればそれで代用表示するから
904: 2018/10/27(土)15:49 ID:IkTi26EG(1)調 AAS
なんだよ地球文字って?
905(1): 2018/10/27(土)16:16 ID:NXHcy7gB(3/4)調 AAS
https://www.charbase.com/1f30e-unicode-earth-globe-americas
https://www.charbase.com/1f30f-unicode-earth-globe-asia-australia
https://www.charbase.com/1f30d-unicode-earth-globe-europe-africa
906: 2018/10/27(土)16:59 ID:r0d5m4I8(1)調 AAS
そんな文字(絵文字?)があるのか。
初めて見て、びっくり。(; ̄Д ̄)
907: 2018/10/27(土)17:04 ID:NXHcy7gB(4/4)調 AAS
それ、右上のリンクを押したら色々出て来て笑える
908(1): 2018/10/27(土)22:17 ID:8ILfgags(3/3)調 AAS
for /f %a in ('dir /b') do echo %~za,%~ta
なんてことできたんだねえ、
dir /bは他の属性情報を削いでるからできないと思い込んでた
909: 2018/10/28(日)08:43 ID:uzLWPyey(1)調 AAS
>>908
dirで取得した情報使うわけじゃないから
カレントにxxx.txtとかのファイルがあれば
for /f %a in ("xxx.txt") do echo %~za
とかできるよ
910: 2018/10/28(日)11:17 ID:ecNurFe9(1)調 AAS
dpnxfだったら単にファイル名にカレントのパスを付けるだけだからチグハグでも出来ちゃうんだぜ
aaa.txtっていうファイルがカレントに存在してなくても構わないってことだ
pushd d:\xxx\yyy
for /f %a in ("aaa.txt") do echo %~fa
ってやれば、d:\xxx\yyy\aaa.txtっていう架空のファイルのフルパス名を表示してくれる
911: 2018/10/28(日)20:39 ID:5N/SSOj8(1)調 AAS
>>905
俺のブラウザが古いのかうまく表示されなかったけど、これか。
http://i.stack.imgur.com/DQ2Ls.png
912(1): 2018/10/29(月)00:52 ID:m4kOmKq3(1)調 AAS
質問です。
データが以下のように入っているcsvファイルを
指定された削除対象のファイル名の行を削除したいです。
削除対象は別ファイルに一覧としてあります。
イメージとしては以下のようにしたいです。
bass.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAB,20171001,1300
AAC,20171031,1300
AAD,20171031,1300
================================
delete.txt
================================
AAB
AAD
================================
output.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAC,20171031,1300
================================
OSはWindows7
コマンド(batでもOK)でoutput.csvのような形にしたいのですが
上手くいかず、findstr /V で1行だけ試しにやってみたら理想と近い形になったのですが、
削除対象が複数になると上手くいきませんでした。
913: 2018/10/29(月)06:11 ID:VYDzXbvz(1/8)調 AAS
?
findstr /v "AAA AAD" bass.csv>output.csv
で行くはずだがだめだった?
これが行ければ除外パターンを作るfor /f文を前段に作るだけで終わると思うが
914: 2018/10/29(月)06:59 ID:VYDzXbvz(2/8)調 AAS
行けるじゃん…そういえばfindstrは/gオプションあるから、for文も要らんね
findstr /v /g:delete.txt bass.csv>output.txt
なおfindstrの複数検索パターン指定は和文だと失敗する。
英数字の検索なら問題なし
915: 2018/10/29(月)07:23 ID:g89iCylL(1/7)調 AAS
よくわからんが
FINDSTR /B にして検索文字列のあとに , を付ければいいんじゃね
916: 2018/10/29(月)07:26 ID:g89iCylL(2/7)調 AAS
あ、/I も付ければいいかも
917: 2018/10/29(月)08:03 ID:VYDzXbvz(3/8)調 AAS
行頭以外にAAAやAADが記述されており、それは出力したいなら /B は合った方がいい
918: 2018/10/29(月)08:12 ID:VYDzXbvz(4/8)調 AAS
訂正 AABやAADが だった
919: 2018/10/29(月)08:15 ID:g89iCylL(3/7)調 AAS
無いとファイル名の部分一致するかも
拡張子あるなら末尾の , は要らんかも
和文ダメなんだ知らんかった
920(3): 2018/10/29(月)09:16 ID:g89iCylL(4/7)調 AAS
>>912
和文無ければ不要のバッチ
@echo off & setlocal & set /a n=0
for /f "delims=" %%i in (delete.txt) do set "s=%%i" & call :x
if %n%==0 (goto :eof ) else set /a n-=1
echo ファイル名,日付,時間> output.csv
for /f "skip=1 delims=" %%i in (bass.csv) do set "s=%%i" & call :y
goto :eof
:x
set "d%n%=%s%" & set /a n+=1 & goto :eof
:y
for /f "delims=," %%j in ("%s%") do set "s1=%%j" & call :z
goto :eof
:z
setlocal enabledelayedexpansion
for /L %%k in (0,1,%n%) do if /i "!s1!"=="!d%%k!" goto :eof
echo !s!>> output.csv
921(1): 2018/10/29(月)09:25 ID:g89iCylL(5/7)調 AAS
>>920
3行目訂正
if %n%==0 (copy bass.csv output.csv & goto :eof ) else set /a n-=1
922(2): 2018/10/29(月)10:42 ID:VYDzXbvz(5/8)調 AAS
おいらが書くならこう
@echo off
setlocal enabledelayedexpansion
for /f %%a in (delete.txt) do set list=!list!,%%a
set list=%list:,= %
for /f "delims=" %%b in (bass.csv) do (
set "line=%%b"
set /a flg=0
for %%b in (%list%) do (
echo !line!|findstr /b /v "%%b">nul 2>&1
set /a flg +=!errorlevel!
)
rem echo !cnt!
if !flg! equ 0 echo !line!>>output.txt
)
pause
923(2): 2018/10/29(月)11:13 ID:K68WvpFD(1)調 AAS
>>899
x64だと
C:\Windows\System32\
x64だと64bitで書いたアプリもあるのでフォルダで区別
ここらへんwindows自体が手品のようなことをしていていわば巨大ウィルスソフト化
x64はintelの失敗作、性能を優先しすぎて使い勝手が大幅に悪くなった
924: 2018/10/29(月)11:17 ID:P47cxv7B(1)調 AAS
CSVのフィルタ処理をバッチでやろうとは思わないけど参考になった
925: 2018/10/29(月)11:21 ID:VYDzXbvz(6/8)調 AAS
すまん、>>922の内側のfor分の %%変数は%%cの方がよかった。
ローカル変数的な振る舞いで動作上は問題ないけど
926(3): 2018/10/29(月)11:39 ID:wCs1yHBV(1)調 AAS
先輩方、お知恵ありがとうございます。
情報の後出しとなってしまって大変申し訳ありません。
ファイル名には枝番がふられているものがあり、
delete.txtに記載されている「AAB」を削除指定すると枝番01,02の記載迄消えてしまう為
ファイル名と完全一致の行のみを削除するにはどのようにすれば良いかお知恵をお借りしたかった次第です。
bass.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAB,20171001,1300
AAC,20171031,1300
AAD,20171031,1300
AAB01,20111001,1300
AAB02,20111001,1300
================================
delete.txt
================================
AAB
AAD
================================
output.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAC,20171031,1300
AAB01,20111001,1300
AAB02,20111001,1300
================================
927: 2018/10/29(月)11:41 ID:VYDzXbvz(7/8)調 AAS
delete.txtにカンマ加えて書けばいいんでないの?
AAB,
AAD,
928(1): 2018/10/29(月)11:55 ID:g89iCylL(6/7)調 AAS
>>926
>>920でOK
>>922
delete.txtの中の
テキストに半角スペースや ! 文字があると誤動作
929: 2018/10/29(月)12:31 ID:g89iCylL(7/7)調 AAS
>>926
もし>>920を使うなら>>921で訂正してください
930(1): 2018/10/29(月)13:38 ID:SulfyTCP(1)調 AAS
>>923
質問は64bitならどういう値になるって質問ではなくて、
32bitの場合と64bitの場合とで機能・動作的に何が違うの?
って意味だと思うけど
931: 2018/10/29(月)13:42 ID:t/dvzEws(1)調 AAS
>>930
違うよ
932: 2018/10/29(月)13:43 ID:VYDzXbvz(8/8)調 AAS
>>928
半角スペースはケアレス、!は全く気にしていなかった。勉強になった。有難う
933: 2018/10/29(月)22:11 ID:BnWHDqaq(1)調 AAS
Ruby で作った
require 'csv'
delete_files = { } # 削除するファイル名を入れる、ハッシュ
text = <<TEXT
AAB
AAD
TEXT
# 改行区切りで、改行を除去してから、ハッシュに入れる
text.each_line do | line | # 各行
line.chomp! # 末尾の改行を削除する
next if line.empty? # 空行は処理しない
delete_files[ line ] = true
end
# コロン区切りのCSV 入力ファイルを、1行ずつ処理する
CSV.foreach( "bass.csv" ) do |row|
# 削除対象ファイルの行は、出力しない
puts row.join( "," ) unless delete_files.has_key? row[ 0 ]
end
934: 2018/10/29(月)22:24 ID:XpqRFBWF(1)調 AAS
地球はチタマと読むのです
935: 899 2018/10/30(火)17:29 ID:GfHx62hK(1/3)調 AAS
>>923
レスありがとうございます。
OSはwin10x64で実行されたcmdの呼び出し元は
C:\Program Files (x86)にあるアプリケーションです
%__APPDIR__%はC:\Windows\SysWOW64\
%ComSpec%はC:\WINDOWS\system32\cmd.exe
左上にある窓のtitleは%ComSpec%と同じで、何か変です
タスクマネージャーにはコマンドプロンプト(32ビット)と出ます
OSから直接cmdを起動したら(32ビット)は出ません
OSが自分自身を騙してるのでしょうか
たぶん機能上は違いが無いと思いますが
936: 2018/10/30(火)17:53 ID:ZaLbntHv(1/2)調 AAS
その呼び出してるアプリが32bitアプリなのだと予想
937: 2018/10/30(火)17:57 ID:GfHx62hK(2/3)調 AAS
C:\Program Files (x86)なので32ビットですね
938: 2018/10/30(火)18:58 ID:ZaLbntHv(2/2)調 AAS
64bitOSでの32bitアプリはエミュレーションみたいな物で、32bitアプリから64bitのdllは使えないし、その逆も出来ないようになってる。なのでcmd.comも分けてあるという理由でメモリや動作モード以外の機能差は無いのではなかろうかと
939: 2018/10/30(火)19:57 ID:8A3JIwUi(1)調 AAS
32bitアプリから見た C:\Windows\System32 の実体は C:\Windows\SysWOW64 だから、
System32にあってもSysWOW64にないコマンド(WSL関連とか)は実行できないとか、
環境変数の値がビット数に応じて違うとか、その程度の違い
940: 2018/10/30(火)22:17 ID:GfHx62hK(3/3)調 AAS
試しに
64ビットでビルドしたコマンドは
普通に動作しました
>echo %__APPDIR__%
C:\Windows\SysWOW64\
>Hello_World.exe
Hello World!
941: 2018/10/31(水)19:08 ID:QI0rTSh9(1)調 AAS
以前は確かsystem32のcmdとSysWOW64のcmdが同じだったんだ
そんでもってWinSxSのcmdが違っていた
今はsystem32とSysWOW64が違うんだな
WinSxSのはsystem32と同じになってる
手品の種が変った?
942: 2018/10/31(水)21:11 ID:lh+glCNV(1)調 AAS
>>926
作ってみた。ファイル名に%がはいらない前提ですが、こんな手もあるということで勘弁願いたい。
@echo off
set t=tmp.bat
echo type bass.csv^^>%t%
for /f "delims=" %%a in ( delete.txt ) do (
echo ^| find /v "%%a,"^^>>%t%
)
echo ^>output.csv>>%t%
call %t%
del %t%
943: 2018/11/01(木)07:13 ID:5DVAbKOZ(1/2)調 AAS
夜見た時は何をやってるのか分からなかった。
finnd /vをパイプでパターン数繰り返すわけね。
944: 2018/11/01(木)11:22 ID:06yasLFO(1)調 AAS
%ってファイル名に使えるんだね
半角記号でバッチの挙動に関係するのは「!」くらいしか知らなかったわ。
じゃあ変数名と同じ名前のフォルダ(例えば「%appdata%」)に
cdで移動するのは無理って事?
上下前次1-新書関写板覧索設栞歴
あと 58 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s