【.cmd】 バッチファイルスクリプト %12 【.bat】 at TECH
[2ch|▼Menu]
2:デフォルトの名無しさん
17/03/11 14:16:25.14 tWxSSf/m.net
2GET

3:デフォルトの名無しさん
17/03/11 17:24:01.08 aIgw+L4R.net
そろそろ次スレ立てた方がいいと思う

4:デフォルトの名無しさん
17/03/11 19:08:44.39 ayh8mOJp.net
タヒ

5:デフォルトの名無しさん
17/03/12 22:04:13.40 LKmH3irJ.net
達人の方々!お教えください
set文による文字列の置き換えで
=を置き換えたいのですが
どのように記述すればよいのでしょうか?

6:デフォルトの名無しさん
17/03/13 02:51:46.65 ieWeiZc+.net
>>5
setの文字列置換では無理
=の個数が決まっているのならforでderims==
不特定なら一文字ずつ=かどうかを判定し=なら置換したい文字列を付け足し
テストしてないから不備があるかもだけど以下みたいな感じで出来ると思う
:ReplaceEqual
if "%~1"=="" (echo ERROR&exit /b)
set "str=%~1"
set output=
:CheckEqual
if not defined str exit /b
pause
if "%str:~0,1%"=="=" (
set "output=%output%置換後文字列"
set "str=%str:~1%"
goto :CheckEqual
)
set "output=%output%%str:~0,1%"
set "str=%str:~1%"
goto :CheckEqual

7:デフォルトの名無しさん
17/03/13 02:56:02.96 ieWeiZc+.net
済まん pause テストするつもりで入れてたのを消すの忘れてた
まあそのままテストしてみて

8:デフォルトの名無しさん
17/03/13 03:26:40.42 Kv5ZfyaF.net
:ReplaceEqual
set "str=%~1"
set output=
:CheckEqual
if "%str:~0,1%"=="=" (
set "output=%output%置換後文字列"
set "str=%str:~1%"
) else (
set "output=%output%%str:~0,1%"
set "str=%str:~1%"
)
if defined str goto :CheckEqual
exit /b

9:デフォルトの名無しさん
17/03/13 07:40:38.20 KSFKLeET.net
>>6-8
ありがとうございます
色々試して見ます

10:デフォルトの名無しさん
17/03/13 22:53:05.48 UotY540z.net
>>8と同じだけど、もう少し使いやすいI/Fにしたもの
@echo off
rem 文字列中には、",%(1つのみ) を入れないこと
set "var==abc=def=!#$&'()=^~|-+*;:{}<>,./?\_%%"
call :replace var "=" "="
echo "%var%"
rem savety stopper
goto :eof
:replace
setlocal
set i=0
set s=
:replace_loop
call set "c=%%%1:~%i%,1%%"
if not defined c (endlocal&set "%1=%s%"&goto :eof)
if "%c%" equ "%~2" (set "s=%s%%~3") else (set "s=%s%%c%")
set /a i+=1
goto :replace_loop

11:デフォルトの名無しさん
17/03/15 08:22:32.42 Ekd3hMdD.net
cmderいいな
この手のツールで表示が崩れたりせずまともに動くやつ見るの初めてだ

12:デフォルトの名無しさん
17/03/15 19:39:27.45 sbz59NLr.net
for /r %%i in (*.jpg) のようなコマンドで取得した絶対パスをカレントフォルダとの相対パスに変換するにはどうするのが一番ですか?
現在はsetコマンドの置換機能でカレントフォルダの部分のパスを消しているんですがパスに変な文字列が入っていると誤作動を起こしそうで少し不安です。
もっとスマートなやり方はありますか?

13:デフォルトの名無しさん
17/03/16 01:00:29.70 DixFGYK0.net
>パスに変な文字列が入っていると
どのみち%が入っているとバッチだと詰む。やれなくないけど物凄く面倒
バッチでは完全な文字列操作は無理だと割り切った方がいい
PowerShell使えば?
URLリンク(www.google.co.jp)

14:デフォルトの名無しさん
17/03/16 01:47:18.14 9KCSEqzj.net
>>13
分かりました、何か別の方法を考えます

15:デフォルトの名無しさん
17/03/16 02:25:05.07 iKA3O6Cf.net
>>14
実際の有効なパスが対象なんだから
問題となるのは上に出てきたequalを含んだフォルダがある場合だけだろう
setlocal
echo %cd%>tmpfile
for %%i in (tmpfile) do set /a size=%%~zi-2
del tmpfile
if %size% neq 3 set /a size+=1
for /r %%i in (*.txt) do (
set "p=%%~i"
call set "p=%%p:~%size%%%"
call echo ".\%%p%%"
)
endlocal

16:デフォルトの名無しさん
17/03/16 02:32:32.21 iKA3O6Cf.net
肝心なのは、文字列操作、表示まで扱う場合は
文字列を必ず""で括るようにすること
& % ^ 等を含んでると括ってないとおかしくなる

17:デフォルトの名無しさん
17/03/16 04:08:08.29 gadu0oc0.net
chcp 437

18:デフォルトの名無しさん
17/03/16 11:46:49.75 iKA3O6Cf.net
>>17
ファイルサイズじゃ根本的にダメだったね
(それにecho %cd%も""で括ってなきゃいけなかったし)
call :length "%cd%" n
for /r %%i in (*.txt) do (
set "p=%%~i"
call set "p=%%p:~%n%%%"
call echo ".\%%p%%"
)
goto :eof
:length
setlocal
set s=%1
set n=0
:length_1
call set "c=%%s:~%n%,1%%"
if defined c set /a n+=1&goto :length_1
if %n% neq 5 set /a n+=1
endlocal&set /a %2=%n%-2
goto :eof

19:デフォルトの名無しさん
17/03/16 12:49:57.48 iKA3O6Cf.net
訂正
call :length cd n
for /r %%i in (*.txt) do (
set "p=%%~i"
call set "p=%%p:~%n%%%"
call echo "%%p%%"
)
goto :eof
:length
setlocal
set n=0
:length_1
call set "c=%%%1:~%n%,1%%"
if defined c set /a n+=1&goto :length_1
if %n% neq 3 set /a n+=1
endlocal&set /a %2=%n%
goto :eof

20:12
17/03/16 18:53:00.18 9KCSEqzj.net
>>15
ありがとうございます
文字列を置換することばかり考えていたのでカレントフォルダ分の文字数を削るという発想に行き着きませんでした
これで何とかなりそうな気がします

21:デフォルトの名無しさん
17/03/17 21:12:58.50 V4hZYsin.net
どなたかお詳しい方、ご教示ください
windows7を起動後、自動で特定のアカウントパスワード入力後にログインし、
ログイン後、デスクトップの特定座標を自動でクリックするという操作を行わせたいです
このような処理はbatファイルで可能でしょうか?
win7初期状態にインストールされているものであれば他のものを使用してもよいのですが。
キーワードだけでも結構ですので、お助けいただければ幸いです

22:デフォルトの名無しさん
17/03/17 21:46:29.02 93Jxn9OB.net
胡散臭すぎるだろ・・・

23:デフォルトの名無しさん
17/03/17 22:18:36.30 Pk7DeofX.net
ログインとはWindows7の登録ユーザーってことか?
それともWebブラウザを起動してどっかのサイトにログインするってことか?
あと何故マウスクリックなのか?
デスクトップに表示してるアイコンなら別に直接起動できるだろうに

24:デフォルトの名無しさん
17/03/18 09:01:42.64 KPOks79l.net
>>21
無理です

25:デフォルトの名無しさん
17/03/18 15:14:23.81 cDGLzqpd.net
start URLリンク(www.google.co.jp)自動ログイン

26:デフォルトの名無しさん
17/03/20 17:14:02.44 QMGJB+5Y.net
だいぶ使い道ないけど、DIRって複数フォルダの内容を1回で表示できるんだね。
 DIR C:\tmp C:\tmp2

27:デフォルトの名無しさん
17/03/24 13:17:40.14 jo55dHfH.net
for文が同一フォルダに自分で出力したファイルを
一つだけ拾っちゃうんだけど、何か対策はありませんか?
for %%I in (*.jpg) do copy %%I %%~dpI_%%~nxI
って感じに処理すると
1.jpg 2.jpg → _1.jpg _2.jpg __1.jpg
となっちゃう…

28:デフォルトの名無しさん
17/03/24 13:52:45.87 OsTTofqK.net
for /f "delims=" %%a in ('dir /a-d /b *.jpg') do

29:デフォルトの名無しさん
17/03/25 20:50:35.80 8s6m96Ov.net
なるほどDIRか…
ありがとうございました。

30:デフォルトの名無しさん
17/03/28 18:35:13.10 oEoZ8De2.net
バッチファイルで
echo %*
とすると引数がすべて表示されるけど
%0=自分自身だけ無いのはなんで?
*で0だけハブられるなんて可


31:」想……



32:デフォルトの名無しさん
17/03/28 18:52:24.94 IKXgMhqU.net
少し考えれば分かりそうなものだが
%cmdcmdline%

33:デフォルトの名無しさん
17/03/30 01:42:37.50 gGp/SYAm.net
なんか真似しそう(笑)

34:デフォルトの名無しさん
17/04/03 06:06:20.82 awE7Wvau.net
バッチ書くのにオススメのエディタあったら教えて
最近目がめっきり弱くなって来たので色分け表示とかの視認性上がるものや
便利そうな機能があるものを知りたい
頻繁に使うわけじゃないからこそ探すの面倒で先人の知識をお借りしたい

35:デフォルトの名無しさん
17/04/03 07:06:14.38 pL1jzkCs.net
>>33
VisualBatは?
文字に色もつくしいろいろ設定できるよ
batをexe形式にすることもできる

36:デフォルトの名無しさん
17/04/03 07:12:25.04 5ummjK72.net
サクラエディタ

37:デフォルトの名無しさん
17/04/03 07:33:25.19 uEU30p4H.net
マジレスすると目が悪いならでかいモニタ買ってフォントサイズでかくするのが一番良い
PowerShell、Ruby, PythonとかならVSCodeでブレークポイント張ったり変数のインスペクトしたりできるけど
その手の支援機能が全く期待できないBatじゃどれ使っても同じだろう
手に馴染んだエディタ使えばいいしないならフリーのどれか一つ覚えればいい
キーワードの色分け程度なら大抵用意されてるし
VisualBatはちょくちょく見かけるけどそれ専用の環境を覚えるくらなら普通のエディタ使ったほうがいい気がする
個人的にはBatから別の言語のコード書いて呼び出す事が多いし
自作マクロになるけど
↓みたいなコードを一つのファイルに書いて##!!に挟まれたカーソル位置のコードを切り出して実行する機能が
言語の学習やちょっとしたテストに便利で気に入っているのでエディタマクロ覚えて作ってみるのお勧め
##!! echo test
echo hello
##!! for test
for %i in (a,b,c) do echo %i
##!! calc test
set a=1
set /a a+=2
echo %a%

38:デフォルトの名無しさん
17/04/03 07:56:40.92 wDpIbVKg.net
中身のない長文要らんわ

39:デフォルトの名無しさん
17/04/03 22:35:33.81 TkzGFBjq.net
>>33
黒背景に白地の文字が視認性あがるよ
フォントはゴシックで文字サイズも大きくする
俺の使ってるのは一般的にはオススメではないのでどうかと思うが
(New)QXエディタ(一応シェアウェアだが未登録でも機能制限も期間制限も無い)

40:デフォルトの名無しさん
17/04/03 22:53:09.08 jFb9lqNm.net
真っ黒背景に真っ白文字は目がズキズキする

41:デフォルトの名無しさん
17/04/03 22:58:56.52 TkzGFBjq.net
>>39
確かに、目のいい人にとってはそうかもしれないけどね
コマンドプロンプト画面がエディタ画面だと思ってもらえれば想像できるよね

42:デフォルトの名無しさん
17/04/03 23:14:57.75 rmwiW03F.net
color 0f
は目に痛い

43:デフォルトの名無しさん
17/04/03 23:18:55.00 TkzGFBjq.net
目のいい人がコメントしたって意味ないだろ
老眼やかすみ目で文字が読みにくくなったらわかるよ
特に、カンマとピリオドの区別が付かないとストレス溜まるぜ

44:デフォルトの名無しさん
17/04/03 23:37:00.86 mc8PKhXW.net
>>33
サクラエディタ入れて
IPAゴシックフォントにする

45:デフォルトの名無しさん
17/04/04 00:06:37.41 m/ZONOLH.net
背景は薄い黄緑色にしてる
目が疲れない

46:デフォルトの名無しさん
17/04/04 00:16:41.83 Q0uaZ4Jg.net
そういえば昔のホスト端末とかって黒背景に緑字が多かったよね?
あれってなんでだろ?

47:デフォルトの名無しさん
17/04/04 02:35:10.99 G7XsiAet.net
>>45
グリーンディスプレイがあったからじゃね?

48:デフォルトの名無しさん
17/04/04 02:45:05.78 ti2ez7YV.net
緑やオレンジの蛍光体の方がTVの白蛍光体より刺激が少ないから採用されていたらしい

49:デフォルトの名無しさん
17/04/04 04:37:33.60 RiJvnB3V.net
>>40
適当な画像エディタのスポイトで抽出してみればわかるけど
コマンドプロンプトは黒と白じゃなくて黒とグレー
理由は目への配慮
DQも同じ

50:33
17/04/04 05:42:06.14 ldgn2Vfw.net
皆様たくさんのレスありがとうございます
VisualBat試してみました
デバッガとしては便利そうですがTab文字打てないのでエディタとしてはまだちょっと使えなさそうです
for や if の()で自動インデントとかしてくれるようになると便利かも
今後の更新に期待します
他、挙げて頂いたアドバイスも順次時間が取れ次第試して行きたいと思っております
次はサクラエディタを試用する予定。他候補にMery、QX
コマンドプロンプトは color 07 不透明度80 で使っております
かすみ目、乱視、老眼、ド近眼、何れも酷いです
他に思い付いたアドバイス等ございましたらよろしくお願いします

51:デフォルトの名無しさん
17/04/04 06:03:57.35 o7weIbXl.net
>>43
フォントはVLゴシックのほうがいいと思う

52:デフォルトの名無しさん
17/04/04 12:05:28.05 h1EI1nbQ.net
gPadは色弄りやすい

53:デフォルトの名無しさん
17/04/04 12:56:18.88 CQgziqhI.net
>>50
あのフォントゼロに斜線が入ってるから使ってる

54:デフォルトの名無しさん
17/04/05 00:03:13.02 jDUjKmAY.net
>>48
>DQも同じ
ドラクエ?

55:デフォルトの名無しさん
17/04/08 17:14:16.29 3YaJnUcz.net
ms製wgetなんてあったんだな
何故か異様に遅いが
bitsadmin /Transfer htmlget URLリンク(www.google.co.jp) c:\logo.png

56:デフォルトの名無しさん
17/04/08 17:15:28.84 3YaJnUcz.net
フォントはMyricaがClearTypeと相性がいい

57:デフォルトの名無しさん
17/04/08 17:52:42.60 RJCKk6tM.net
VLゴシックは行間空き過ぎ
同じ行数が表示出来るようフォントサイズで調整した場合
VLゴシックのフォントサイズ10に対しIPAゴシック12、MSゴシック13
やたらと空行入れたがる脳みそスカスカの空行厨が好みそうなフォント
自分にはIPAゴシックよりVLが良い点が見当たらないので
>>50さん、どの辺が良いのか具体的に教えていただけると助かります

58:デフォルトの名無しさん
17/04/08 18:14:54.54 xnWSKOe7.net
>>54
これは知らんかった
バッチファイルで夜間にダウンロードとかに便利だな

59:デフォルトの名無しさん
17/04/08 18:57:28.10 LC0ZcHdg.net
>>54
動かなかったんで/helpしてみたら、WindowsXPのbitsadminには/Transfarが無かった(version 1.0 [ 5.1.2600.0 ])
調べてみたら、
Windows XP Service Pack 2 サポート ツール
URLリンク(www.microsoft.com)
をインストールすればいいことが判った
version 2.0 [ 6.6.2600.2180 ]

60:デフォルトの名無しさん
17/04/09 11:47:08.97 z+t/KLMw.net
Myrica良いね
|が破線なのと\→\バックスラッシュに違和感あるけど慣れればこっちの方が見分け楽そう

61:デフォルトの名無しさん
17/04/11 20:07:11.55 bvJ+shyZ.net
set test=%1
for /f "delims=" %%f in (%test%) do (
E:\test\test.bat %%f
)
上記のfor処理にテキストのファイルパスを一つずつ読み込ませて専用batで処理した後に
全部終わったらシャットダウン処理をしたいのですが
ループ処理に割り込ませる方法って何かありますか?

62:デフォルトの名無しさん
17/04/11 21:42:41.83 ZiByT+J4.net
質問の意味が不明瞭
全部終わった後でいいならforの後にshutdown書けばいいんでないの?
for中に割り込ませたいのは何故?

63:デフォルトの名無しさん
17/04/11 22:02:51.00 bvJ+shyZ.net
set test=%1
for /f "delims=" %%f in (%test%) do (
E:\test\test.bat %%f
)
shutdown /S /T 30
単純にこれでうまくいかなかったので割り込ませる必要があるのかと思い質問しましたが
やっぱりそんなわけないですよね・・・
単純なミスをしてる可能性が高そうなのでもう一回見直してみます

64:デフォルトの名無しさん
17/04/11 22:31:07.73 U8R3p0c1.net
callしてないからtest.batから帰ってこないだけでは

65:デフォルトの名無しさん
17/04/11 22:39:54.03 bvJ+shyZ.net
あちゃーほんとだ
普通に動いてたから気づかなかった・・・
アホですね
ちょっと修正してテストしてみます
指摘ありがとう

66:デフォルトの名無しさん
17/04/15 01:17:56.44 yuPX0yl1.net
ソフトを起動した際に出るライセンスキーを入力する画面に値を自動でいれたいです。
batで可能でしょうか?

67:デフォルトの名無しさん
17/04/15 08:13:42.82 eG98vJ7n.net
ahk

68:デフォルトの名無しさん
17/04/15 23:02:38.65 a3PF4w5O.net
batでgrep検索をしようと思ってるんだけど、
検索結果にファイルのフルパスを出力する方法を教えてください><
現状だとファイル名+行の内容しか出ない・・・

69:デフォルトの名無しさん
17/04/27 06:44:05.61 Ek2Yalzm.net
複数のファイルがあり、ぞれぞれ中身が
fileID: aaaa within(
);

fileID: akf within(
);
などfileID: ~ within();は固定です。
各ファイルのaaaaやakfを読み込みの際に変数に取り込みたいのですがどのように書けばいいでしょうか?
fileID: aaaa within(はファイルの一行目なので set /p fl=< %inputFile% でとれました。

70:デフォルトの名無しさん
17/04/27 07:31:26.21 LF40VtKG.net
テストしてないけどこんな感じ。必要ならusebackqとかも。aaaaに&とか入るならsetでクオートする必要がある
for /f "tokens=2* delims= " %%a in (%inputFile%) do (
set ID=%%b
goto :NEXT
)
:NEXT
または
set /p fl=< %inputFile%
for /f "tokens=2* delims= " %%a in (%fl%) do set ID=%%b
または
for /f "tokens=2* delims= " %%a in ('findstr /b /c:"fileID" "%inputFile%"') do set ID=%%b

71:デフォルトの名無しさん
17/04/29 21:00:05.56 GvSnly4L.net
>>69
"within("しか取れませんでした。

72:デフォルトの名無しさん
17/04/29 23:45:46.56 AyX6Tpbc.net
書いたコマンドとテストした対象ファイルの1行目をコピペで貼ってみ

73:デフォルトの名無しさん
17/05/09 16:43:52.50 PScyAxKX.net
助けて下さい!
毎月第二木曜日の16:00になったら
Aフォルダに入っているgファイルにBフォルダに入っているgファイルを上書きする
batファイルを作って下さい
よろしくお願いします

74:デフォルトの名無しさん
17/05/09 17:29:08.98 bjRIYrg3.net
>>72
ファイル上書きのBAT(c:\xxx.bat)を作成してタスク登録する
schtasks /create /sc monthly /mo second /d thu /st 16:00:00 /tn title /tr "c:\xxx/bat" /ru username /rp userpassword

75:デフォルトの名無しさん
17/05/09 18:58:44.41 PScyAxKX.net
>>73
ありがとうございます!

76:デフォルトの名無しさん
17/05/12 00:01:39.58 1meaH6LX.net
set txt="C:\scr\a.txt"
for /f "delims=, usebackq tokens=1,2,3,4,5,6,7,8" %%i in (%txt%) do (
set /a X="(%%j-%%i)+(%%l-%%k)+(%%n-%%m)+(%%p-%%o)"
)
echo %X%
forを使った計算について質問ですがa.txtから数値を抜き出し計算したいのですが最後の二つが空の場合があり
この場合は%%pと%%oですがその場合はエラーになって強制終了してしまいます
gotoを使う方法は思いついたのですが他に空だった場合にゼロを代入するなどは可能でしょうか?

77:デフォルトの名無しさん
17/05/12 08:46:27.33 trqCrhEU.net
set txt="C:\scr\a.txt"
for /f "usebackq tokens=1,2,3,4,5,6,7,8 delims=, " %%i in (%txt%) do (
set /a X=%%j-%%i+%%l-%%k+%%n-%%m, po=%%p-%%o
)
set /a XX=X+po
echo %XX%

78:デフォルトの名無しさん
17/05/12 11:05:40.92 lLM9Jqdl.net
echo ^
とすると more? と出る
??

79:デフォルトの名無しさん
17/05/12 12:02:37.54 +kEWkBL6.net
>>76
空の場合に1が代入されてエラーを回避できました
サンクス

80:デフォルトの名無しさん
17/05/19 17:52:47.97 ya28xWZT.net
特定のフォルダ内のテキストファイルを処理するバッチを作りましたが
@echo off
for /f "usebackq delims=" %%i in (`dir /B /S "E:\text_sc\*.txt"`) do (
echo %%i
call E:\work\syori.bat "%%i"
)
syori.batで処理したテキストを忘れないようにリスト化(syorizumi_list.txt)
aaa
bbb
ccc
のように処理したテキストの名前だけ縦に追記
次回から新しいテキストファイルが同じフォルダに出来た場合にsyorizumi_list.txtの
処理済みのテキストを除外して処理したいのですが
コマンドのアドバイスを頂けないでしょうか

81:デフォルトの名無しさん
17/05/19 19:38:36.49 HiKVEJh7.net
>>79
もし、その入力ファイルをその後弄らないのならファイル属性を弄るのがいい
例えば、アーカイブ属性を削るとか読み取り専用属性にするとか
そうすれば、forの中のdirに/aで分別できる
それが無理な場合は、こんなかんじでファイルに登録されているかどうかチェックするとかかな
findstr /x "%%~ni" syorizumi_list.txt >nul
if errorlenel 1 (
echo %%i
call E:\work\syori.bat "%%i"
)
)

82:デフォルトの名無しさん
17/05/19 21:01:19.56 ya28xWZT.net
>>80
レスありがとうございます
読み取り属性の方は最終手段としてとりあえず書かれたコマンドを追記してテストしていますが
エラーで強制終了してしまいます・・・
ヒントは頂けたのでちょっと考えてみます

83:デフォルトの名無しさん
17/05/19 21:32:14.27 8Dg0HTHO.net
処理済みファイルを下位ファルダに移動させるとかじゃダメなの?
それが1番楽だと思うけど

84:デフォルトの名無しさん
17/05/19 22:02:54.16 ya28xWZT.net
ダメではないですし意地になってるだけです・・・
すいません
どうしようもなければそうしおうと思います

85:デフォルトの名無しさん
17/05/19 22:41:00.81 HiKVEJh7.net
>>81
ただのtypoだから(errorlevel)
あと処理済ファイルの指定はフルパスにしないとダメかも

86:デフォルトの名無しさん
17/05/19 22:45:30.06 HiKVEJh7.net
あと、移動させるなら下位フォルダはダメだよ
dir /sではそれも対象だから

87:デフォルトの名無しさん
17/05/19 23:51:05.34 ya28xWZT.net
>>84
修正したら動きました!
ありがとうございます
ただsyorizumi_list.txtに
aaa
bbb
ccc
とあったらaaaしか除外してくれませんね・・・
もう少し調べてみます

88:デフォルトの名無しさん
17/05/20 02:30:44.06 HrYyDnOr.net
>>86
まあこっちが悪いっちゃ悪いんだけど、これくらい修正して使って欲しかった
/c:"%%~ni"

89:デフォルトの名無しさん
17/05/20 08:10:06.10 N++czmo3.net
>>87
眠すぎたのと集中力が散漫で気づいてないだけでした・・・
すいません
それと指摘の通り/c:に変えたら期待通りの動作になりました
サンクス!

90:デフォルトの名無しさん
17/05/20 21:37:37.96 HrYyDnOr.net
>>88
その言い方に嫌な感じがするんだがちゃんと引数の意味を調べて使ってるよね
/x /c:"%%~ni"としてるんなら、変な勘ぐりスマン

91:デフォルトの名無しさん
17/05/20 22:35:16.21 N++czmo3.net
>>89
/x /c:"%%~ni"で問題なく動作しています
細かいところまでありがとう

92:デフォルトの名無しさん
17/05/22 14:12:41.59 Q9T2A2Wt.net
こんなろくに理解せずそのまんまコピペして使ってるとトラップに引っかかるぞ

93:デフォルトの名無しさん
17/05/22 22:28:16.59 b+LuBt/G.net
下位フォルダに移動することも検討してるなんてレスから
/sが必要だとも思えんよね

94:デフォルトの名無しさん
17/05/22 22:30:42.85 b+LuBt/G.net
もし/sが意図通りだったら
aaa.txt
aaa\aaa.txt
なんて状況どうするんだって話だし

95:デフォルトの名無しさん
17/05/26 07:30:18.71 /NUGeMQI.net
>>89
> その言い方に嫌な感じがするんだがちゃんと引数の意味を調べて使ってるよね
同意
88の1行目で奴の人物像がすべて分かる

96:デフォルトの名無しさん
17/05/26 16:05:36.92 OOQCykcT.net
引数 %1 %2 ,, は%9 までだが
shiftで取り出せば%10以上でも取り出せた

97:デフォルトの名無しさん
17/06/15 12:35:49.64 j04OpPTD.net
Cドラのdown配下のmp4とaviを
DドラTozakaruzoSaikonkaraに集約してコピーしたいときはどうするの?
XCOPY "C:\down\*.mp4” "D:\TozakaruzoSaikonkara\" /d /e /h /r /y
XCOPY "C:\down\*.avi" "D:TozakaruzoSaikonkara\" /d /e /h /r /y
ワイルドカード使いたいけど、eroやmoroのところが難しい
for文の記述の方がいいなど、よろしくお願いします。
C:/
├down/
│ └ ero/
│   └ 111.mp4
│ └ moro/
│   └ xx2.avi
│ └ zzz.mp4
│ └xxx.avi
D:/
├TozakaruzoSaikonkara/
│ └ 111.mp4
│ └ xx2.avi
│ └ zzz.mp4
│ └ xxx.avi

98:デフォルトの名無しさん
17/06/15 13:13:57.77 6QOS5lbl.net
robocopy /?

99:デフォルトの名無しさん
17/06/15 15:41:43.67 y+UEOWCj.net
>>96
cd /d c:\down
cd d:TozakaruzoSaikonkara
for /r %%i in (*.avi *mp4) do copy /y "%%~fi" d:

100:デフォルトの名無しさん
17/06/15 15:46:23.72 y+UEOWCj.net
cd d:\TozakaruzoSaikonkara の方がいいか

101:デフォルトの名無しさん
17/06/15 15:50:20.24 y+UEOWCj.net
もしフォルダが無いなら
md d:\TozakaruzoSaikonkara 追加してくれ

102:デフォルトの名無しさん
17/06/15 16:07:02.35 y+UEOWCj.net
*.mp4 だった
穴だらけだな
俺もボケてきたか

103:デフォルトの名無しさん
17/06/15 17:02:52.10 +JrLzVDI.net
>>98
おー、inの句に並列できるんですね
%%~fiのfはfileの意味でしょうか
いずれにしても無事コピーされました
応用も効きそうなので調べて利用させていただきます!
ありがとう

104:デフォルトの名無しさん
17/06/15 17:08:46.74 +JrLzVDI.net
いや、フルパスかな
初めてだったので、楽しみます
ありがとう

105:デフォルトの名無しさん
17/06/16 01:17:16.66 fojoWyA2.net
>>103
俺がもっといいやり方がないか調査するからとりあえずmoroフォルダをうp!

106:デフォルトの名無しさん
17/06/17 18:10:57.34 hP08xqzx.net
>>98
ドライブとディレクトリの違いであるのか、コピーと移動の違いであるのか、
教えていただけたらうれしいです。
>>96
で、同じドライブの別フォルダに移動したいとき、下記教えていただいたコマンドを変えて実行すると、
別ドライブのときのようにコピーがされない状況です。

cd /d c:\down
cd c:\TozakaruzoSaikonkara
for /r %%i in (*.avi *mp4) do move /y "%%~fi" c:
---------
下記の用に移動したい
C:/
├down/
│ └ ero/
│   └ 111.mp4
│ └ moro/
│   └ xx2.avi
│ └ zzz.mp4
│ └xxx.avi
C:/
├TozakaruzoSaikonkara/
│ └ 111.mp4
│ └ xx2.avi
│ └ zzz.mp4
│ └ xxx.avi

107:デフォルトの名無しさん
17/06/17 21:48:00.86 4uF4heHb.net
for /r c:\down %%i in (*.avi *.mp4) do move /y "%%~i" c:\TozakaruzoSaikonkara

108:デフォルトの名無しさん
17/06/17 22:08:13.20 hP08xqzx.net
>>106
ありがとうございます!
比較して、代入の引数iに違いがあるし、もう少し勉強します。
また、わからないことなど出てくるかもしれませんが、その時はよろしくお願いいたします。

109:デフォルトの名無しさん
17/06/17 22:53:57.13 4uF4heHb.net
参考に言っておくが () の中の引数なんだが、ワイルドカード以外は要注意だ
例えば (*.avi *.mp4 sukebe.jpg) とかにすると
各ディレクトリに sukebe.jpg が無くても強引にコマンド実行してエラーになったりする

110:デフォルトの名無しさん
17/06/19 21:06:26.56 HM1jnBNt.net
moroとかsukebeとか名付けがオッサン臭いんだがw

111:デフォルトの名無しさん
17/06/26 00:08:20.51 a4kJ2YgH.net
DIRコマンドでは*を使って検索みたいなことが出来ますね。

【コマンド】
C:\>dir /s /b C:\Windows\System32\host*
【実行結果】
C:\Windows\System32\hostname.exe
C:\Windows\System32\dllcache\hostname.exe
C:\Windows\System32\drivers\etc\hosts

他にもっと複雑な検索も出来るのでしょうか?

112:デフォルトの名無しさん
17/06/26 00:10:31.02 a4kJ2YgH.net
あと「DIR /?」で出てくるヘルプにはこの機能について触れられていないのはなぜなのでしょう?こんなに便利なのに。

113:デフォルトの名無しさん
17/06/26 00:24:40.04 1HPve1dM.net
ワイルドカードはDIR固有じゃないけど

114:デフォルトの名無しさん
17/06/26 00:27:25.02 q7GF7ZpN.net
>>111
windowsXPで恐縮なんだが、Windowsヘルプ(ヘルプとサポートセンター)では、
Dirの項目の説明の中で、ワイルドカード関係のものとして以下のものが書いてあったよ
解説
・複数の filenames を使用する
 複数の filenames を使用できます。スペース、カンマ、またはセミコロンでファイル名を区切ります。
 FileName でワイルドカード文字 (? と *) を使うと、ファイルのグループを表示することができます。
・ワイルドカードを使用する
 ワイルドカード (? と *) を使うと、ファイルとサブディレクトリのサブセットの一覧を表示できます。

ドライブ C のすべてのディレクトリで、拡張子が .txt のすべてのファイルの一覧を表示するには、次のように入力します。
dir c:\*.txt /w/o/s/p
各ディレクトリにある拡張子が .txt のファイル名が、アルファベット順にソートされた一覧がワイド形式で表示されます。
画面単位で一時停止し、キーが押されると次の画面が表示されます。

115:デフォルトの名無しさん
17/06/26 01:37:25.73 q7GF7ZpN.net
>>111
つまりコマンドの内蔵ヘルプは簡略版ってことなんだ
それと、なんかちょっと検索してみたら
Windows10には「ヘルプとサポート」がないらしい
なのでオンラインでのコマンドラインリファレンス
URLリンク(technet.microsoft.com)
XPの「ヘルプとサポート」には
「コマンドラインリファレンス」の他にも、
「新しいコマンドラインツール」
「コマンドシェルの概要」(ここにパイプやリダイレクトの説明が載っている)
ってのがあったんだけどなあ

116:デフォルトの名無しさん
17/07/01 02:44:43.86 mwCfh4Ih.net
質問があります。
ちょっと事情があってすべての引数をダブルクオーテーションで囲って実行しなければならなくなりました。
例えばこんな感じで
"C:\Software\ffmpeg\ffmpeg.exe" "-i" "%~1" "-vcodec" "utvideo" "-acodec" "pcm_s16le" "%~dpn1_test.avi"
ffmpegでは正常に動くことを確認したのですが他の一般的なソフトウェアもこのような起動方法で動作すると考えてもいいのでしょうか?

117:デフォルトの名無しさん
17/07/01 03:37:58.17 QCoLM9eW.net
引数の仕様はそれぞれだが問題無い

118:デフォルトの名無しさん
17/07/05 22:31:01.85 9GxT9B4i.net
とあるファイルの中身の文字列を置換したいのですが、何かいい方法はありますでしょうか?
とあるファイルはtxtファイルではないですが、テキストエディタで開くと文字列が書いてあります。

119:デフォルトの名無しさん
17/07/05 22:46:04.03 R8zuGv9z.net
全部テキストならともかくそれ以外のバイナリファイル内の置換はcmdじゃ無理だろ
WSHとかPower Shellとかで探せ

120:デフォルトの名無しさん
17/07/06 00:29:11.58 l/JVwvz3.net
テキストファイルだけど、拡張子がtxtではないファイルのことです

121:デフォルトの名無しさん
17/07/06 01:41:06.31 vizsBHcK.net
findstr である程度のことはできるけど、置換の条件とかが複雑になってくるとしんどい。
外部コマンドが使用可能なら、onigsedとか、SEDを使った方が多少は楽。

122:デフォルトの名無しさん
17/07/06 02:34:32.14 VUvDmuBp.net
>>119
拡張子になんの意味があると思ってるの?
なんかそのレベルの知識だったら、メモ帳でも使った方がいいと思うよ。

123:デフォルトの名無しさん
17/07/07 17:03:51.39 peDYPYbs.net
>>119
ren Nullpo.unko Nullpo.txt

124:デフォルトの名無しさん
17/07/09 19:10:43.21 Gxva3cTk.net
バッチファイルからシリアルポートを簡単に読み書き出来る手段って無いですかね?
古くはCOM?を使う方法が有名ですがBluetoothなどで作られた仮想シリアルポート?には使えないようです

125:デフォルトの名無しさん
17/07/13 00:28:41.39 m+WJUz/m.net
シリアルポートってなんだ?RS-232Cとかか?

126:デフォルトの名無しさん
17/07/13 00:45:21.62 CfPNRtgi.net
>>123
232C→USB変換ケーブルみたいなのあったような

127:デフォルトの名無しさん
17/07/16 11:23:45.75 FHjtOHLZ.net
そもそもバッチファイルって何?
CでもBasicでもなく、メモ帳の拡張子をbatに変えるだけで良くて、
コマンドブロンプトとかいう、MS-DOSと何が違うのかわからないような画面で動いて、
何なの?

128:デフォルトの名無しさん
17/07/16 15:58:56.60 30vHB81v.net
CだってBASICだってメモ帳の拡張子を適当に変えれば行けますよ

129:デフォルトの名無しさん
17/07/18 02:02:06.89 Bi+xDIbE.net
「拡張子とは何か」から始めとけ

130:デフォルトの名無しさん
17/07/18 09:43:40.29 YNdL6SIO.net
>>126
>メモ帳の拡張子をbatに変える
notepad.exeの拡張子をbatに変えたら動かなくなりますよ

131:デフォルトの名無しさん
17/07/18 12:15:15.33 +17jTjCv.net
>>129
なんでメモ帳って書いてあるのにnotepad.exeをいじるわけ?

132:デフォルトの名無しさん
17/07/18 12:23:23.94 lxnTGpj5.net
そらメモ帳の実体はnotepad.exeやし

133:デフォルトの名無しさん
17/07/18 19:54:35.52 qQbuN+bc.net
>>130
お前の言う「メモ帳」とはnotepad.exeでない何か他のものなのか?

134:デフォルトの名無しさん
17/07/18 20:32:10.68 wtRY8Rgw.net
もう夏休みか

135:デフォルトの名無しさん
17/07/18 23:42:51.89 Wjn/rMX6.net
揚げ足の取り方が寒い。

136:デフォルトの名無しさん
17/07/19 00:03:00.46 oeGL8Gu+.net
>>126についていうなら、その辺のいい加減さが理解を妨げてると言える

137:デフォルトの名無しさん
17/07/19 00:19:58.81 wIP5zHZ/.net
とにかく>>126は色々とおかしい
どこから突っ込めばいいのかわからんくらいにアチコチおかしい
PC初心者板ならともかく、なぜム板にこんな人が居るんだ?ってレベル
迷い込んできたのか?

138:デフォルトの名無しさん
17/07/19 00:23:24.87 I6a60LYe.net
しかし誰もきちんと説明できないという

139:デフォルトの名無しさん
17/07/19 02:27:06.77 Gwnbk1WK.net
どこから説明始めたらいいのかわからん程だし

140:デフォルトの名無しさん
17/07/19 21:02:00.27 WMMf4PqS.net
説明はできないが


141:揚げ足は取れる、ということですね。



142:デフォルトの名無しさん
17/07/19 22:27:12.79 caLBuZR5.net
コピー系コマンドのコピー速度って
遅 copy < xcopy < robocopy 早
で良いですよね?
これはVista、7、10のどのOSでも同じでしょうか?

143:デフォルトの名無しさん
17/07/19 23:32:30.26 I6a60LYe.net
copyの方が早くね?4文字だし。

144:140
17/07/20 03:04:39.26 R4lBeVK+.net
>>141
コマンド打ち込むにも時間がかかりますから一理ありますね。copyは引数指定も直感的だし…

って常にコマンド手打ちする訳でもないですし!w

145:デフォルトの名無しさん
17/07/22 00:59:36.62 J1O+P69V.net
+.bat や ,.bat もOKだった

146:デフォルトの名無しさん
17/07/22 21:18:13.40 yBUCBb6t.net
プラスバッドって、何か格好いいな。
カンマバットはダセェけど。

147:デフォルトの名無しさん
17/07/23 16:18:49.88 sxzHAQSA.net
では、
£.bat
γ.bat
ラプラスバットと、ガンマバットでは、どうだろう?

148:デフォルトの名無しさん
17/07/29 01:24:32.19 ocuZvBLs.net
@.bat や =.bat
ファイルを作ることはできるが、実行しようとしてもコマンドプロンプトに無視されて実行できなかった

149:デフォルトの名無しさん
17/07/29 02:07:03.67 0L2d7SO5.net
@.bat はフルパスで C:\work\@bat ってするか、キャレットでエスケープして ^@.bat で実行できる
=.bat はフルパスでもダメだけど、キャレットでエスケープすればいける

150:デフォルトの名無しさん
17/08/01 00:45:45.45 7i1X54Qd.net
>>147
キャレットって何かわからなかったが、^をつけることなんですね
^@ や ^= でたしかに実行できました

151:デフォルトの名無しさん
17/08/10 19:56:28.38 gQNT5BPl.net
(^_^)

152:デフォルトの名無しさん
17/08/10 21:54:16.62 BFQhJ/Te.net
"@ とか "= とか

153:デフォルトの名無しさん
17/08/14 22:38:23.70 3xlVGOet.net
すみません助けてください
遅延関数を宣言してるところから、下記の親ディレクトリの名前だけ引くサブルーチンに
ファイルフルパス投げて、戻そうとしているのですが
for文のところでDEST_DIRに値が入らなくて困っています
windows7環境で遅延関数について調べているのですが
なんで値が入らないのかわからず。 %%Pをechoすると中身が表示されるのですが
それをSETするときに何をやっても入りません。。。助けてください
:GET_PARENTDIR
setlocal enabledelayedexpansion
SET PathLF=%1
SET PathLF=%PathLF:~0,-1%
SET PathLF=!PathLF:\=^
!
for /F %%P in ("!PathLF!") do SET DEST_DIR = %%P
endlocal && set DEST_DIR = %DEST_DIR%
echo %DEST_DIR%
exit /b

154:デフォルトの名無しさん
17/08/14 22:39:38.44 3xlVGOet.net
ああああ遅延変数でした
もうやだああぁ

155:デフォルトの名無しさん
17/08/14 23:55:08.58 pZiLFUe+.net
>>151
これって例えばc:\aaa\bbb\ccc\test.txtってファイルを投げたら
最終的にtest.txって文字を得たいの?
cccを得たいの?

156:デフォルトの名無しさん
17/08/15 02:10:26.85 F71LHla5.net
>>151
まずは
SET DEST_DIR = %%P
endlocal && set DEST_DIR = %DEST_DIR%
の空白がいけないのでは?
SET DEST_DIR=%%P
endlocal && set DEST_DIR=%DEST_DIR%

157:デフォルトの名無しさん
17/08/15 08:22:11.69 ltV5IdSe.net
>>154
後輩にその空白を入れられたことがある
「可読性を良くしようと思って…」って言ってたな
普通の高級言語やってる奴は=の前後に空白入れただけで不具合起こるなんて考えもしないわな
コマンドプロンプトはホント昔の仕様を引きずり過ぎだわ

158:デフォルトの名無しさん
17/08/15 08:51:21.42 J2u+qflL.net
setlocal enabledelayedexpansion使うとファイル名に!が入ってるとめんどくさいから極力使わないようにしてるんだけど俺だけ?みんなはどうしてる?

159:デフォルトの名無しさん
17/08/15 08:55:13.27 GzAS59pw.net
>>155
C言語で言うマクロ置換みたいなもんだからしょうがない
もう新規の奴はPowerShellに移行するしかない

160:デフォルトの名無しさん
17/08/15 10:13:39.94 x5EZUuTK.net
名前ソートで上に持ってきたいフォルダには名前の頭に!をつけてる

161:デフォルトの名無しさん
17/08/17 23:34:26.73 jGLnJoZN.net
スペースが入ったファイル名からスペースを取り除くには一行では無理ですか?

162:デフォルトの名無しさん
17/08/18 00:59:25.98 Oq4EZT3J.net
こんな感じ?
set "File=%~1" & ren "%File%" "remove=%File: =%"

163:デフォルトの名無しさん
17/08/18 01:00:23.41 Oq4EZT3J.net
間違えた
set "File=%~1" & ren "%File%" "%File: =%"

164:デフォルトの名無しさん
17/08/20 03:39:45.42 w/lVOYHU.net
バッチでよく使う pslist.exe はプロセス名が日本語だと間違える
pslist v1.4 sysonternals

165:デフォルトの名無しさん
17/08/20 16:32:29.32 7nn0chG1.net
フォルダD:\XXXX直下の、
AAAA、BBBB、CCCCの3つの隠しファイル(拡張子なし)を、
定期的にE:\backupフォルダにバックアップするためのバッチファイルを作りたい
フォルダXXXX以下には、YYYY、ZZZZというフォルダがあり、
この下にもAAAA、BBBB、CCCCと同名のファイルが存在するが、
それはバックアップしなくていい
copyコマンドでは隠しファイルはコピーできない
xcopyコマンドではサブディレクトリ以下の同名ファイルもコピーされてしまう
バッチファイルで処理するためにはどうすればいいのでしょうか?
できればアトリビュートはいじりたくないです
よろしくお願いいたします

166:デフォルトの名無しさん
17/08/20 16:35:22.92 T95gEh5X.net
>>161
誰もツッコミ無しなの?

167:デフォルトの名無しさん
17/08/20 16:53:03.09 vBwVL8I3.net
>>163
xcopyでAAAAなどのファイルを一つずつ指定してコピーするというのは?

168:デフォルトの名無しさん
17/08/20 17:25:05.34 7nn0chG1.net
>>165
実験してみたんですが、
xcopy D:\XXXX\AAAA E:\backup\
とすると、backupフォルダには、
AAAA
\YYYY\AAAA
\ZZZZ\AAAA
の3ファイルがコピーされちゃうんですよ
\YYYYと\ZZZZのはいらないのでどうしたもんかなと質問させていただきました

169:デフォルトの名無しさん
17/08/20 17:36:31.70 vBwVL8I3.net
>>166
こちらの方でもテストしたけど1ファイルだけコピーになるんだけどな
なんでだろ

170:デフォルトの名無しさん
17/08/20 17:43:47.57 7nn0chG1.net
>>167
テストありがとうございます
あれ?
なんか余計なスイッチ入れるとかしちゃってたかな?
今出先なんで帰ったら再度実験してみます

171:デフォルトの名無しさん
17/08/20 19:15:30.58 T95gEh5X.net
>>161
cd /d "%~dp1" & set "File=%~nx1" & call ren "%%File%%" "%%File: =%%"
>>163
cd /d "D:\XXXX"
for %%i in (AAAA BBBB CCCC) do xcopy /h /y "%%~i" "E:\backup"

172:デフォルトの名無しさん
17/08/22 19:19:28.49 rIu52qT/.net
以前こちらで聞いて試行錯誤しているのですが、何分初心者で四苦八苦しております。
そこでご教授願いたいのですが、
@rem 引数有無と引数名チェック
if "%USR_INPUT_STR1%"=="" goto ERROR
echo;%USR_INPUT_STR1%|findstr /R /C:"^http" /C:"openrec" >NUL||(echo "%1" を処理できません) && goto ERROR
@rem URLのアドレスとHTMLを環境変数へ設定
set ADDR=%USR_INPUT_STR1%
for %%I in (%USR_INPUT_STR1%) do set HTML=%%~nxI
@rem HTMLダウンロード
curl -L --max-redirs 10 -R -O %ADDR%
if not %ERRORLEVEL%==0 goto ERROR
@rem HTMLから文字列抽出
for /F "tokens=2 delims=<>| " %%I in ('type %HTML%^|findstr /R /C:"<title>"') do set TITLE=%%~I
for /F "tokens=3 delims=, " %%I in ('type %HTML%^|find /I "m3u8"') do set TARGET=%%~I
ffmpeg -c copy "%TITLE%" -i


173: "%TARGET%" pause exit :ERROR echo 引数が無効のため処理できませんでした pause exit このままだと、ファイル名がUTF-8で文字化けしてしまいます。 これを、面倒なのでファイル名で出力したいと思ったのですが、正規表現が弱く全く前に進みません。 丸投げで申し訳ございませんが、どうか手直ししていただけませんでしょうか。 よろしくお願い致します。



174:デフォルトの名無しさん
17/08/22 20:10:25.50 uGuLhv+Q.net
powershellに切り替えたら?

175:デフォルトの名無しさん
17/08/22 20:50:12.77 1dHyDD35.net
>>170
よく分からないけどbat自体をUTF-8で書いてchcp 65001というのは?

176:デフォルトの名無しさん
17/08/22 20:52:58.84 rIu52qT/.net
>>172
それも考えたのですが、不特定多数のPCで使う機会があるので手間が増えてしまうなと思い諦めました。
そこで、URLからIDとなる文字列を抽出してそれをファイル名に使おうと考えました。
参考URL:URLリンク(www.openrec.tv)
この末尾の7cuVKOAY3lvの部分だけを、TITLEに代入したいと思ったのですが、思うようにいかなくて・・・。

177:デフォルトの名無しさん
17/08/22 21:10:23.56 rIu52qT/.net
結局、実行batのディレクトリ内にnkf32を導入し、
nkf -s --overwrite %HTML%
と書き加えて対処致しました

178:デフォルトの名無しさん
17/08/29 14:35:48.67 91TLAHUR.net
フォルダの中に、あああ_1.flv あああ_2.flv … あああ_100.flvのようなファイルがあるときに、あああ_1.flvをあああ_001.flvのようにリネームしたりできないんでしょうか

179:デフォルトの名無しさん
17/08/29 15:34:02.29 ZSKrJS0x.net
>>175
Flexible Renamer

180:デフォルトの名無しさん
17/08/29 16:50:10.59 iDduY4Qi.net
お〜瑠璃ね〜むで十分やぞ
D&D用のショトカも作れるしな

181:デフォルトの名無しさん
17/08/29 17:11:24.47 1aRkt9bd.net
>>175
「のようなファイルがあるときに」の条件がどこまでかわからないが
>>176が一番早いのは間違いない

182:デフォルトの名無しさん
17/08/29 20:06:42.61 KnTCuJQc.net
set "a=あああ_"
set "b=.flv"
setlocal enabledelayedexpansion
for /L %%i in (1,1,99) do set /a c=%%i+1000 & ren "!a!%%i!b!" "!a!!c:~1!!b!"

183:デフォルトの名無しさん
17/08/31 16:38:58.30 omILiWW+.net
>>175
pushd "%~dp1"
:LOOP
for /f "tokens=1,2 delims=_" %%a in ("%~n1") do (
set FNAME=%%a
set /a FN=%%b+1000
)
ren "%~1" "%FNAME%_%FN:~-3%%~x1"
shift
if not "%~1"=="" goto :LOOP

184:デフォルトの名無しさん
17/08/31 17:02:31.64 KsdTyPQv.net
>>180
変換の数字の前が_文字じゃないかもしれないし
_文字がファイル名の中に混じっている可能性もあるし

185:デフォルトの名無しさん
17/08/31 17:53:19.91 Vr+Gp9oD.net
どのスレでも一緒だが質問の要件が分かりにくいのはめんどうだな

186:デフォルトの名無しさん
17/08/31 18:00:47.56 kMuf1wHV.net
なんでか知らないけど他人に勝手にマルチポストされたけど>>175の質問は元のスレで解決したのでもういいです

187:デフォルトの名無しさん
17/09/03 22:03:48.56 BJjXydYg.net
cd \
pushd D:\abc
setlocal
popd
としても元の \ に戻らなかった

188:デフォルトの名無しさん
17/09/04 00:02:37.80 pBY/MKIa.net
>>184
そうならなきゃ逆にダメでしょ
setlocalでは(親の環境を引き継いだ)別の環境の上で実行されている
カレントを移動しようが環境変数を操作しようが元の環境には影響しない
pushd D:\abc
setlocal
endlocal
popd
または
setlocal
pushd D:\abc
endlocal

189:デフォルトの名無しさん
17/09/04 01:15:44.81 24unggVp.net
>>185
ありがとうございました
そういうことでし


190:たか



191:デフォルトの名無しさん
17/09/16 05:02:43.18 cRJ1WDqm.net
今さらバッチファイル入門て…
余計な被害者増やさずPowerShellにしろよ
これだからIT後進国は
超入門コマンドプロンプト:バッチコマンドで定型処理を行う (1/3) - @IT
URLリンク(www.atmarkit.co.jp)
017年09月15日 05時00分 公開

192:デフォルトの名無しさん
17/09/16 05:59:12.53 TbhIjs8j.net
>>187
このスレのタイトル見てから言えよ
それとも、お前は、自分が使ってないソフトのスレ行って
「別のソフト使え」って言って巡るのが趣味なのか?

193:デフォルトの名無しさん
17/09/16 06:09:12.67 NzFbxZfY.net
PowerShellに移行しようと思ったこともあるけどファイルをD&D出来ないから断念した
あと他人の環境で動くのか分からないから渡しにくいし

194:デフォルトの名無しさん
17/09/16 06:11:20.82 NzFbxZfY.net
まあbatに面倒臭いとこがあるのも理解できるけど
せめて正規表現と小数の計算くらいはあればよかったんだが

195:デフォルトの名無しさん
17/09/16 11:00:27.02 Nvo3nRRv.net
自分で使うにはPoweShellはめちゃめちゃ便利だけど
一般的に定着してるかというとそうじゃないし

196:デフォルトの名無しさん
17/09/17 11:17:50.05 jtG62g+O.net
PowerShell は起動が遅いから小さいバッチをループで呼び出すのには向いてないんじゃないかな。
いったんロードしたオブジェクトを関数形式で呼び出せばいいんだろうけどよくわからなくてめんどくさいし。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

293日前に更新/301 KB
担当:undef